Beny's Study
11. Arrays 본문
목차
- 배열의 복사
-배열의 채우기
-배열의 정렬과 검색
-비교와출력
-배열을 List 로 변환
Arrays
배열을 다루기 편리한 Static메서드 제공
배열의 복사- copyOf( ), copyOfRange( )
copyOf() : 전체 복사
copyOfRange() : 일부만 복사
int[] arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length);//arr의 길이전체복사 arr2=[0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 3);//앞에서 3개만 복사 arr3=[0,1,2]
int[] arr4 = Arrays.copyOf(arr, 7);//앞에서 7개복사 arr4=[0,1,2,3,4,0,0]
int[] arr5 = Arrays.copyOf(arr, 2,4);//index2~4복사(2이상4미만) arr5=[2,3]
int[] arr6 = Arrays.copyOf(arr, 0,7);//index 0이상7미만 복사 arr6=[0,1,2,3,4,0,0]
배열채우기 -fill( ) , setAll( )
int[] arr= new int[5];
Arrays.fill(arr,9); //arr[9,9,9,9,9]
Arrays.setAll(arr,(i)) -> (int)(Math.random()*5)+1);//arr=[1,5,2,1,1]
배열의 정렬과 검색 -sort( ), binarySearch()
sort( ) : 배열을 정렬할때 사용
binarySearch( ) : 배열에 저장된 요소를 검색할때 사용
배열에서 지정된 값이 저장된위치(index)를 찾아서 반환.
반드시 배열이 정렬된 상태여야 올바른 결과 얻음.
//<잘못된 경우 - 정렬이 안된 상태에서 binarySearch사용>
int[] arr= {3,2,0,1,4};
int idx = Arrays.binarySearch(arr, 2);
//<올바른 경우>
Arrays.sort(arr);//배열정렬
System.out.println(Arrays.toString(arr));//[0,1,2,3,4]
int idx = Arrays.binarySearch(arr, 2);//idx = 2 <-올바른 결과
비교와 출력 - equals( ), toString( )
equals( ) : 두 배열에 저장된 모든 요소를 비교해서 같으면 true,다르면 flase(일차원배열에서 사용)
deepEquals( ) :두 배열에 저장된 모든 요소를 비교해서 같으면 true,다르면 flase(다차원배열에서 사용)
toString ( ) : 배열의 모든 요소를 문자열로 출력(일차원배열에서 사용)
deepToString ( ) : 배열의 모든 요소를 문자열로 출력(다차원배열에서 사용)
int[] arr = {0,1,2,3,4};
int[][] arr2D = {{11,12}, {21,22}};
System.out.println(Arrays.toString(arr));//[0,1,2,3,4]
System.out.println(Arrays.deeptoString(arr2D));//[[11,12], [21,22]]
String[][] str2D = new String[][] {{"aaa","bbb"}, {"AAA","BBB"}};
String[][] str2D2 = new String[][] {{"aaa","bbb"}, {"AAA","BBB"}};
System.out.println(Arrays.equals(str2D,str2D2));//false
System.out.println(Arrays.deepEquals(str2D,str2D2));//true
배열을 List로 변환 -asList(Object ...a)
asList( ) : 배열을 List에 담아서 반환한다.
반환한 List의 크기는 변경할 수 없다. 즉, 추가 또는 삭제가 불가능하다. (저장된 내용은 변경 가능)
List list = Arrays.asList(new Integer[] {1,2,3,4,5});//list = [1,2,3,4,5]
List list = Arrays.asList(1,2,3,4,5);//list=[1,2,3,4,5]
list.add(6);//예외발생
*크기를 변경 할 수 있는 List가 필요한 경우
Lsit list = new ArrayList(Arrays.asList(1,2,3,4,5));
"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.
이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."
'[JAVA] > 13. 제네릭과 컬렉션' 카테고리의 다른 글
13. HashSet (0) | 2022.05.01 |
---|---|
12. Comparator와 Comparable (0) | 2022.04.30 |
10. Iterator, ListIterator, Enumeration (0) | 2022.04.30 |
09. Stack과 Queue (0) | 2022.04.30 |
08. ArrayList와 LinkedList의 비교 (0) | 2022.04.30 |