Beny's Study

11. Arrays 본문

[JAVA]/13. 제네릭과 컬렉션

11. Arrays

76beny 2022. 4. 30. 22:56

목차

- 배열의 복사

-배열의 채우기

-배열의 정렬과 검색

-비교와출력

-배열을 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( )

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