1. 프리미티브 타입과 레퍼런스 타입
int, long, float, double과 같은 프리미티브 타입(Primitive Type)과
Integer, Long, Float, Double과 같은 레퍼런스 타입(Reference Type)
1.1 정수형
선언
int a = 13;
int b = 4;
산술 연산
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
비교 연산
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
비트 연산
System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
System.out.println(~a);
System.out.println(a << 2);
System.out.println(a >> 1);
1.2 부동소수형
소수를 저장할 때 사용
사칙연산
System.out.println(2.5 + 3.7) # 더하기 / 6.2
System.out.println(7.9 - 4.2) # 빼기 / 3.7
System.out.println(1.5 * 4.8) # 곱하기 / 7.199999999999999
System.out.println(10.0 / 3.2) # 나누기 / 3.125
System.out.println(10.0 % 3.2) # 모듈러 / 0.39999999999999947
논리연산
double x = 0.5;
double y = 1.2;
double z = 2.0;
System.out.println(x > y && y < z); // AND 연산 / false
System.out.println(x < y || y < z); // OR 연산 / true
System.out.println(!(x > y)); // NOT 연산 / true
2. 컬렉션 프레임워크
2.1 배열
import java.util.Arrays;
public class Solution {
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
int[] array2 = new int[] {1,3,5,7,9};
int[] array3 = new int[5];
array3[0] = 0;
array3[1] = 2;
array3[2] = 4;
array3[3] = 6;
array3[4] = 8;
System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(array2));
System.out.println(Arrays.toString(array3));
}
}
배열의 인덱스
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] myArray = {1,4,2,5,3};
myArray[1] = 7;
System.out.println(Arrays.toString(myArray)); // [1, 7, 2, 5, 3]
System.out.println(myArray[2]);
myArray[4] = myArray[2];
System.out.println(Arrays.toString(myArray)); // [1, 7, 2, 5, 2]
}
}
배열 복사
import java.util.Arrays;
class Test {
public static void main(String[] args) {
int[] arr1 = {10,20,30,40,50};
int[] arr2 = new int[arr1.length * 2];
for(int i=0; i < arr.length; i++) {
arr2[i] = arr1[i];
}
arr1 = arr2;
}
}
arraycopy
import java.util.Arrays;
class Test {
public static void main(String[] args) {
int[] arr1 = {10,20,30,40,50};
int[] arr2 = new int[arr1.length * 2];
System.arraycopy(arr1,0,arr2,0,arr1.length);
/*
- 첫번째 인자 : 복사할 배열
- 두번째 인자 : 복사를 시작할 배열의 위치
- 세번째 인자 : 붙여넣을 배열
- 네번째 인자 : 복사된 배열값들이 붙여질 시작위치 (차례대로 붙여 넣어진다)
- 다섯번째 인자 : 지정된 길이만큼 값들이 복사된다.
*/
}
}
import java.util.Arrays;
class Test{
public static void main(String[] args) {
int[] arr1 = {10, 20, 30, 40, 50};
int[] arr2 = new int[arr1.length * 2]; // 우선 초기 배열보다 길이가 두배인 새로운 배열을 선언
// Array.copyOf() 메서드 사용
arr2 = Arrays.copyOf(arr1, arr1.length); // arr1 배열을 arr1.length 전체 길이만큼 전체 복사해서 arr2에 할당
System.out.println(Arrays.toString(arr2)); // [10, 20, 30, 40, 50]
arr2 = Arrays.copyOfRange(arr1, 1, 3); // 배열요소 시작점, 끝점 지정. 1, 2 만 복사해서 반환
System.out.println(Arrays.toString(arr2)); // [10, 20, 30, 40, 50]
}
}
배열 정렬
import java.util.Arrays;
class Test{
public static void main(String[] args) {
int[] arr = { 3,2,0,1,4 };
// 오름차순 정렬
Arrays.sort(arr); // 자기 자신 배열을 정렬 시킴 (정렬된 배열을 반환하는 것이 아니다)
System.out.println(Arrays.toString(arr)); // [0,1,2,3,4]
// 내림차순 정렬
Arrays.sort(arr, Collections.reverseOrder()); // 배열을 내림차순으로 정렬할 때는 Collections 클래스의 reverseOrder() 함수를 사용
System.out.println(Arrays.toString(arr)); // [4,3,2,1,0]
// 배열 일부부만 정렬
int[] arr = { 3,2,0,1,4 };
Arrays.sort(arr, 0, 3); // 배열 요소 0, 1, 2 만 정렬
System.out.println(Arrays.toString(arr)); // [0, 2, 3, 1, 4]
}
}
Arrays.sort(arr);
Arrays.sort(arr, Collections.reverseOrder());
Arrays.sort(arr,0,3);
배열 비교
Arrays.equals(arr1, arr2);
2차원 배열
int[][] arr2 = {
{10,20,30},
{40,50,60},
{70,80,90},
{100,200,300}
};
for(int i = 0 ; i < number.length ; i++) { // 먼저 열 부분을 순회하고
for(int j = 0 ; j < number[i].length ; j++) { // 행 부분을 순회하며 각 원소를 출력
System.out.print(number[i][j]);
}
}
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[][] arr1 = {
{ "홍길동", "임꺽정" },
{ "박혁거세", "주몽", "고담덕" }
};
String[][] arr2 = {
{ "홍길동", "임꺽정" },
{ "박혁거세", "주몽", "고담덕" }
};
String[][] arr3 = {
{ "홍길동" },
{ "주몽", "고담덕" }
};
System.out.println("arr1 == arr2 : " + Arrays.deepEquals(arr1, arr2)); // arr1 == arr2 : true
System.out.println("arr1 == arr3 : " + Arrays.deepEquals(arr1, arr3)); // arr1 == arr3 : false
}
}
2.2 리스트
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(4);
System.out.println(list.get(2)); // 인덱스로 값에 접근
2.3 해시맵
key, value 값을 저장하는 해시 테이블
키를 사용하여 값을 검색하는 자료구조
HashMap<String, Integer> map = new HashMap<>();
map.put("apple",1);
map.put("banana",2);
map.put("orange",3);
System.out.println(map);
String key = "apple";
if (map.containsKey(key)) {
int value = map.get(key);
System.out.println(key + ": " + value);
}
else {
System.out.println(key + "는 해시맵에 없습니다.");
}
map.put("banana",4); # 값 수정
map.remove("orange"); # 값 삭제
2.4 문자열
String string = "Hello World!";
String string = "He";
string += "llo";
문자열 수정
String string = "Hello";
string = string.replace("l", ""); // "l"을 모두 삭제
StringBuffer, StringBuilder
StringBuilder sb = new StringBuilder();
sb.append(10);
sb.append("ABC");
// 출력
System.out.println(sb); // 10ABC
sb.deleteCharAt(3); // 3번째 인덱스 문자 삭제
System.out.println(sb); // 10AC
sb.insert(1, 2); // 1번째 인덱스에 2라는 문자 추가
System.out.println(sb); // 120AC
3. 메서드
public static int add(int num1, int num2) {
int result = num1 + num2;
return result;
}
람다식
private static class Node {
int dest, cost;
public Node(int dest, int cost) {
this.dest = dest;
this.cost = cost;
}
}
public static void main(String[] args) {
Node[] nodes = new Node[5];
nodes[0] = new Node(1, 10);
nodes[1] = new Node(2, 20);
nodes[2] = new Node(3, 15);
nodes[3] = new Node(4, 5);
nodes[4] = new Node(1, 25);
Arrays.sort(nodes, (o1, o2) -> Integer.compare(o1.cost, o2.cost)); // ➊
Arrays.sort(nodes, new Comparator<Node>() {
@Override
public int compare(Node o1, Node o2) {
return Integer.compare(o1.cost, o2.cost);
}
}); // ➋
}
코딩테스트 벼락치기로 공부한 Java 문법들 입니다. 앞으로 더 추가할 예정입니다~!
'코딩테스트' 카테고리의 다른 글
[프로그래머스] [python] 소수 찾기 (0) | 2025.05.12 |
---|---|
[프로그래머스] [python] 게임 맵 최단거리 (2) | 2025.05.05 |
[코드트리] [python] 삼성 2024 상반기 오전 2번 : 코드트리 투어 (0) | 2025.04.08 |
[백준] [python] 16236번 : 아기 상어 (0) | 2025.04.07 |
[코드트리] 삼성 코테 2024 하반기 - 코드트리 DB (0) | 2025.04.06 |