Arrays 클래스에는 배열을 다루는 유용한 메서드들이 많다!
<복사>
copyOf() - 배열 전체 복사 (배열, 배열.length) 배열 길이만큼(전부)
copyOfRange() - 배열 일부 복사 from<= i <to (배열,0,4)라면 배열 [0]~[3]
<채우기>
fill() - 배열의 모든 요소 지정값으로 채우기 (배열,5) 모든 배열에 5 저장
setAll() - 배열의 모든 요소 (함수형 인터페이스)구현해서 채우기
(배열, (i) -> (int)(Math.random()*5)+1)
<정렬, 검색> sort(), binarySearch()
sort() 배열 정렬
binarySearch() 저장된 요소 검색(꼭 정렬 후 사용)
<문자열 비교, 출력> equals() toString()
일차원 배열 : equals(), toString()
다차원 배열 : deepEquals(), deepToString()
equals() 배열 요소 같은지 비교(boolean 반환)
toString() 배열 모든 요소 출력
<배열을 List로 변환>
asList() 배열을 List에 담아 변환(List는 읽기 전용이라, 크기 변경,추가,삭제 불가)
ㄴ List list = new ArrayList(Arrays.asList(배열)) <-이렇게 활용 가능!
코드로 확인 해보기!!!
package practice01;
import java.util.Arrays;
public class ArraysMethod {
public static void main(String[] args) {
int[] arr = {0,1,2,3,4};
int[][] arr2D = {{11,12,13}, {21,22,23}};
System.out.println("arr : "+ Arrays.toString(arr)); //배열 문자열로 출력
System.out.println("arr : "+Arrays.deepToString(arr2D)); //다차원배열 문자열로 출력
int[] arr2 = Arrays.copyOf(arr, arr.length); //배열, 배열끝까지 복사
int[] arr3 = Arrays.copyOf(arr, 3); //배열, 3 전까지 복사
int[] arr4 = Arrays.copyOf(arr, 7); //배열 7 전까지 복사(다 채우면 나머지 0으로 채움)
int[] arr5 = Arrays.copyOfRange(arr,2,4); //배열 2부터 4전까지 복사 (23)
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); //배열 0부터 7전까지 복사 (0~6)
System.out.println("arr2 : "+Arrays.toString(arr2));
System.out.println("arr3 : "+Arrays.toString(arr3));
System.out.println("arr4 : "+Arrays.toString(arr4));
System.out.println("arr5 : "+Arrays.toString(arr5));
System.out.println("arr6 : "+Arrays.toString(arr6));
int[] arr7 = new int[5];
Arrays.fill(arr7, 9); //배열 전부 9로 채우기
System.out.println("arr7 : "+Arrays.toString(arr7));
Arrays.setAll(arr7, (i) -> (int)(Math.random()*5)+1); //배열, 함수형인터페이스 가져와서 채우기
System.out.println("arr 7 : "+Arrays.toString(arr7));
for(int i : arr7) { //arr7의 길이만큼 도는 반복문
char[] graph = new char[i]; //arr7[0]~[4] 에 들어 있는 각 숫자 만큼
Arrays.fill(graph, '*'); //배열을 '*'로 채운다
System.out.println(new String(graph)+i); //배열 출력
}
String[][] str2D = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
System.out.println(Arrays.equals(str2D, str2D2)); //XXX 다차원배열은 equals 놉
System.out.println(Arrays.deepEquals(str2D,str2D2)) //deepEqulas(다차원 배열 요소 똑같은지 비교)
char[] chArr = {'A','D','C','B','E'};
System.out.println("chArr : "+Arrays.toString(chArr)); //char배열 출력
System.out.println("index Of B : "+Arrays.binarySearch(chArr, 'B')); //B의 index를 찾음, 정렬 전이라 다른값 출력
System.out.println("===After sorting===");
Arrays.sort(chArr); //배열 정렬
System.out.println("chArr : "+Arrays.toString(chArr)); //정렬된 배열 출력
System.out.println("index of B : "+Arrays.binarySearch(chArr, 'B')); //B의 올바른 index 출력
}
}
결과
728x90
'개발공부 개발새발 > JAVA' 카테고리의 다른 글
뷰에서 컨트롤러에 데이터를 전송하는 방식은? (0) | 2022.12.29 |
---|---|
JAVA) 바이트/문자 스트림에 대한 고찰 (0) | 2022.11.04 |
JAVA) 자바의 정석 기초편 : Iterator 예제 (0) | 2022.10.21 |
JAVA) 자바의 정석 기초편 : ArrayList 예제 (0) | 2022.10.21 |
JAVA) 클래스는 대체 어디에 생성되는 것일까? (feat.자바 메모리 종류) (1) | 2022.10.08 |