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 |