프로그래밍 공부

Array, ArrayLists 본문

Programming/JAVA

Array, ArrayLists

khj1999 2024. 10. 8. 08:16

배열(Array) 선언 방법

int[] arr = {1,2,3};

int[] arr = new int[5];

// n개 생성
int n = 5;

// 길이가 5인 정수형 배열 생성
int[] array = new int[n];

배열 전체 출력 방법

import java.util.Arrays;

// 배열 내용을 반환
Arrays.toString(arr);

유용한 함수

import java.util.Arrays;

// Array.fill(arr, n)함수 배열 전체의 값을 n으로 채움
Arrays.fill(arr, 100);

// Arrays.equals 메서드는 두 배열의 길이와 요소를 비교
Arrays.equals(arr1, arr2); 

// Arrays.sort() 요소를 오름차순으로 정렬
Arrays.sort(arr);

// 내림차순 정렬
// Arrays.sort()와 Collections.reverseOrder()를 함께 사용하여 구현할 수 있음
// 하지만, Collections.reverseOrder()는 기본 자료형 배열에는 직접 사용할 수 없고
// Integer와 같은 래퍼 클래스를 사용해야 함

// 이런식으로 레퍼 클래스로 내림차순 정렬
Integer[] arr = {5, 3, 8, 1, 2};
Arrays.sort(arr, Collections.reverseOrder());

// 기본 자료형을 사용할떄 내림차순 정렬
int[] arr = {5, 3, 8, 1, 2};

// 기본 자료형 배열을 래퍼 클래스 배열로 변환
Integer[] boxedArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);

// 내림차순 정렬
Arrays.sort(boxedArr, Collections.reverseOrder());

// 래퍼 클래스 배열을 기본 자료형 배열로 변환
arr = Arrays.stream(boxedArr).mapToInt(Integer::intValue).toArray();

가변적 매개변수

  • ...는 가변적 매개변수를 나타내는 표기법
  • 가변적 매개변수는 메소드에서 여러 개 사용할 수 없으며(한번만 사용가능), 메소드의 마지막에 위치해야 함.
  • 가변적 매개변수 앞에 다른 매개변수를 추가할 수 있습니다.
  • 가변적 매개변수는 내부적으로 배열로 처리.
// ex
public void methodName(Type... variableName) {
    // 메소드 본문
}        

void print(int... num){
    System.out.println(Arrays.toString(num));
}

int sum(int... vals){
    int sum = 0;
    for(int value:vals){
        sum += value;
    }
    return sum;
}

ArrayList

  • Java의 컬렉션 프레임워크의 클래스 중 하나로, 동적으로 크기가 변할 수 있는 배열(C++ vector 같은 느낌)

  • java.util 패키지에 포함

  • 동적 크기: 요소를 추가하거나 제거할 때 자동으로 크기가 조정됩니다.

  • 인덱스 기반 접근: 배열과 마찬가지로 인덱스를 사용하여 요소에 접근할 수 있습니다.

  • 비동기적: ArrayList는 동기화되지 않으므로 멀티스레드 환경에서는 외부에서 동기화를 해야 합니다.

  • 성능: 요소의 추가 및 삭제는 일반적으로 O(1)이지만, 중간에 삽입하거나 제거할 경우 O(n) 시간이 걸립니다.

  • 생성방법

      import java.util.ArrayList;
    
      public class ArrayListExample {
          public static void main(String[] args) {
              // 기본 생성자: 초기 용량은 10
              ArrayList<String> list = new ArrayList<>();
    
              // 초기 용량 지정
              ArrayList<Integer> numbers = new ArrayList<>(20);
          }
      }
  • 요소추가

    • add(E e): 리스트의 끝에 요소를 추가합니다.

    • add(int index, E element): 지정된 위치에 요소를 삽입합니다.

      list.add("Apple");
      list.add("Banana");
      list.add(1, "Orange"); // index 1에 "Orange" 삽입
  • 요소제거

    • remove(Object o): 리스트에서 지정된 객체를 제거합니다.

    • remove(int index): 지정된 위치의 요소를 제거합니다.

      list.remove("Banana");
      list.remove(0); // 첫 번째 요소 제거
  • 요소접근 - get(int index): 지정된 인덱스의 요소를 반환합니다.

      String fruit = list.get(0); // 첫 번째 요소 반환
  • 요소수정 - set(int index, E element): 지정된 위치의 요소를 새 값으로 수정합니다.

      list.set(0, "Grapes"); // 첫 번째 요소를 "Grapes"로 수정
  • 리스트 크기 확인 - size(): 리스트에 포함된 요소의 수를 반환합니다.

      int size = list.size();
  • 리스트 비우기 - clear(): 리스트의 모든 요소를 제거합니다.

      list.clear();
  • 특정 요소 포함 확인 - contains(Object o): 리스트에 지정된 요소가 포함되어 있는지 확인합니다.

      boolean hasApple = list.contains("Apple");
Comments