특징
배열의 선언
int[] points = new int[3];
int[] points2 = new int[] {1, 3, 5};
int[] points3 = {1, 3, 5}
배열의 순회
for(int i = 0; i < intArry.length; i++) {
int x = intArray[i];
System.out.println(x);
}
for(int x : intArray) {
System.out.println(x);
}
int[] arry = {10, 5, 8, 20, 3};
Arrays.sort(arry); // {3, 5, 8, 10, 20}
int[] arry = {10, 5, 8, 20, 3};
int max = Arrays.stream(arry).max().getAsInt(); // 20
int[] arry = {10, 5, 8, 20, 3};
int max = Arrays.stream(arry).min().getAsInt(); // 3
int[] arry = {10, 5, 8, 20, 3};
int[] copy = Arrays.copyOf(arry, arry.length); // 배열 그대로 복사
int[] copyExtends = Arrays.copyOf(arry, 5); // 배열 크기를 늘려서 복사
⇒ 원본 배열은 변경되지 않고 새로운 배열 객체를 생성
⇒ 배열 크기를 늘린 경우 기본형 배열은 0, 객체 배열은 null로 채워짐
** Arrays.copyOf()와 System.arraycopy()
⇒ Arrays.copyOf는 System.arraycopy를 래핑한 함수임. 즉, 동일한 기능을 함. 하지만, Arrays.copyOf가 조금 더 직관적이라 더 많이 사용됨
다차원(특히 2차원) 배열에서 상하좌우의 값을 탐색하는 경우 delta 배열을 이용하여 탐색하면 효율적임
특징
ArrayList의 생성
// 기본 생성
ArrayList<Integer> list1 = new ArrayList<>();
// 초기 용량(capacity) 지정
ArrayList<Integer> list2 = new ArrayList<>(10);
// 배열을 넣어 생성
ArrayList<Integer> list3 = new ArrayList<>(Arrays.asList(1, 2, 3));
ArrayList의 추가
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1); // {1}
list1.add(2); // {1, 2}
list1.add(3); // {1, 2, 3}
ArrayList<String> list1 = new ArrayList<>(Arrays.asList(1, 2));
ArrayList<String> list2 = new ArrayList<>(Arrays.asList(3, 4));
list1.addAll(list2); // list1에 list2의 내용 추가
⇒ 컬렉션 자체를 ArrayList에 추가할 수 있음
ArrayList의 삭제
ArrayList<String> list1 = new ArrayList<>(Arrays.asList(1, 2));
// 1번째 인덱스 요소 삭제
list1.remove(1); // {1}
// list1의 데이터 모두 삭제
list1.clear();
ArrayList의 검색
ArrayList<String> list1 = new ArrayList<>(Arrays.asList("A", "B", "C"));
// 특정 인덱스에 저장된 객체 반환
list1.get(1); // B
// list에 A가 있는지 검색
list1.contains("A"); // true
// list에 A가 있는지 순차적으로 검색하고 index를 반환 (만일 없으면 -1)
list1.indexOf("A"); // 0
ArrayList의 요소 변경
ArrayList<String> list1 = new ArrayList<>(Arrays.asList("A", "B", "C"));
// 특정 인덱스 값을 설정값으로 변환
list1.set(1, "D"); // {"A", "D", "C"}
ArrayList의 크기
ArrayList<String> list1 = new ArrayList<>(Arrays.asList("A", "B", "C"));
list1.size(); // 3