자바

[자바 개념] 배열, Arrays, ArrayList

라임온조 2023. 1. 11. 17:14

1. 배열 

1) 선언

 //길이 5인 int 담고 있는 배열 생성
int intArray[] = new int[5];
int[] intArray = new int[5];

//해당 내용 가지고 있는 배열 생성
int intArray[] = {1,2,3};
int[] intArray = {1,2,3};

//2차원 배열 선언
int[][] arr = new int[2][3] // 행2 열3인 2차원 배열 선언, 예: {{1,2,3},{4,5,6}}

2. Arrays

1) 개념

배열을 다루기 위한 다양한 메소드가 포함되어 있는 클래스

2) 특징

  • 모든 메소드는 static이므로 객체 선언 없이 메소드를 사용할 수 있다
  • import java.util 필요

3) 메소드 종류

sort

  • 배열 오름차순 정렬
  • char[]을 인자로 넣으면 알파벳 오름차순으로 정렬한 결과를 return 한다
  • {"1", "2", "4", "3"} 이런 배열을 넣으면 숫자 크기대로 정렬한 결과를 return 한다
  • {"-3", "-1"} 이런 배열을 넣으면 -1, -3 이렇게 정렬한 결과를 return 한다
import java.util.*;
int[] arr = {1,3,2,4,7};
Arrays.sort(arr); //arr을 오름차순 정렬하고 그 결과가 arr에 덮인다.

String[] arr2 = {"2", "1", "3"};
Arrays.sort(arr2, Collections.reverseOrder()); // arr2를 역순으로 정렬한 배열을 return, 이때 배열의 타입이 Object여야만 가능하다(int는 불가)

fill

boolean[] arr = new boolean[3];
Arrays.fill(arr, true); // arr의 모든 값을 true로 설정

copyOfRange

int[] arr = {2,3,4,1,5};
Arrays.copyOfRange(arr, 0,3); //arr이라는 배열에서 index 0 부터 index 2까지를 자른 배열({2,3,4})을 return

3. ArrayList 

1) 선언

ArrayList<Integer> arrayList = new ArrayList<Integer>();
ArrayList<String> arrayList2 = new ArrayLIst<String>();

2) 메소드

add

ArrayList<Integer> a = new ArrayList<Integer>();
a.add(1); //a라는 list에 원소 삽입

size

ArrayList<Integer> a = new ArrayList<Integer>();
a.add(1);
a.add(2);
a.size(); //a안에 들어가 있는 원소 개수 return;

remove

ArrayList<Integer> a = new ArrayList<Integer>();
a.add(1);
a.add(2);

a.remove(1); //인덱스 1에 있는 것을 삭제
a.remove(Integer.valueOf(1)) //1이라는 원소를 찾아서 있으면 삭제, 삭제하면 t, 삭제 못하면 f return

4. 배열과 List 차이

  저장방식 크기 할당 속도 저장 대상
배열 정해진 공간이 있고, 모든 곳에 인덱스가 존재 크기 할당 필수, 나중에 크기 바꿀 수 없음 삽입, 삭제: 느림
조회: 빠름
모든 자료형 가능
List 인덱스가 없음, 연결리스트 형태로 저장되어서 동적할당 가능 크기 할당 필수 아님, 나중에 크기 바꿀 수 있음 삽입, 삭제: 빠름
조회: 느림
객체 형태만 가능

 

5. ArrayList <-> 배열

1) ArrayList -> 배열

ArrayList의 메소드인 toArray 사용

  • Object를 담고 있는 배열을 return한다
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Object[] arr = arrayList.toArray(); // Object를 담고있는 배열을 return

ArrayList의 메소드인 toArray사용 및 인자 설정

  • 넘겨준 인자에 맞는 객체를 담고 있는 배열을 return 한다
  • 길이는 0으로 넘겨주면 자동으로 ArrayList의 길이에 맞게 조정된 결과를 return 한다
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Integer[] arr = arrayList.toArray(new Integer[0]); // Integer 객체를 담고 있는 배열을 return

stream 사용

  • 스트림을 생성한 후 매핑을 하고(중간처리) 배열로 결과를 return한다(최종처리)
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.stream() // 컬렉션을 소스로 한 스트림 생성
.mapToInt(Integer :: intValue) // 매핑하여 int를 담고있는 stream인 intStream return
.toArray() // intStream에 존재하는 toArray 메소드 실행

2) 배열 -> ArrayList

 

'자바' 카테고리의 다른 글

[자바 개념] switch  (0) 2023.01.12
[자바 개념] Math  (0) 2023.01.12
[자바 개념] Wrapper  (0) 2023.01.11
[자바 개념] Character, String  (0) 2023.01.06
[자바 개념] Collection과 Collections  (0) 2023.01.06