1. 배열 복사: copyOf() / copyOfRange()

int[] a = {1, 2, 3, 4, 5, 6, 7};
int[] b = Arrays.copyOf(a, a.length)
	   // copyOf(원본 배열, 복사할 길이)
       // b = {1, 2, 3, 4, 5, 6, 7}
       
int[] c = Arrays.copyOfRange(a, 1, 4);
	   // copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스) : 끝 인덱스는 포함하지 않음
       // c = {2, 3, 4}

 

2. 배열 항목 비교: equals() / deepEquals()

int[][] a = { {1, 2}, {3, 4} };

// 얕은 복사
int[][] b = Arrays.copyOf(a, a.length);

System.out.println(a.equals(b)); // false
System.out.println(Arrays.equals(a, b) // true
System.out.println(Arrays.deepEquals(a, b) // true

// 깊은 복사
int[][] c = Arrays.copyOf(a, a.length);
c[0] = Arrays.copyOf(a[0], a[0].length);
c[1] = Arrays.copyOf(a[1], a[1].length);

System.out.println(a.equals(c)) // false
System.out.println(Arrays.equals(a, c) // false
System.out.println(Arrays.deepEquals(a, c) // true

 

3. 배열 항목 정렬: sort() (오름차순 정렬)

int[] a = {1, 4, 2, 5, 6, 3, 7};
Arrays.sort(a);
// a = {1, 2, 3, 4, 5, 6, 7};
사용자 정의 클래스일 경우 클래스가 Comparable 인터페이스를 구현하고 있어야 함
오름차순일 때 자신이 매개값 보다 낮으면 음수, 같을 경우 0, 높을 경우 양수를 리턴
public class IPhone implements Comparable<IPhone> {
	String modelName;
	IPhone (String modelName) {
		this.modelName = modelName;
	}

	@Override
	public int compareTo(iPhone i) {
		return modelName.compareTo(i.modelName);
	}
}

 

4. 배열 요소 검색: binarySearch()

반드시 sort() 등의 메소드를 이용하여 정렬을 해 놓은 상태여야 한다.
없는 항목을 찾으려고 하면 음수값을 리턴한다.
int[] a = {1, 2, 3, 4., ... , 100};

System.out.println(Arrays.binarySearch(a, 85);
					// binarySearch(원본 배열, 찾을 값);
                    // 출력: 84

 

5. 배열 초기화: fill()

int[] a = new int[5];

Arrays.fill(a, 1);
// a = {1, 1, 1, 1, 1}

Arrays.fill(a, 1, 3, 2);
// fill(원본 배열, 시작 인덱스, 끝 인덱스, 값)
// a = {1, 2, 2, 1, 1};

 

 

'JAVA' 카테고리의 다른 글

#2. ArrayList  (0) 2021.08.31
#1. 정규식  (0) 2021.08.30

+ Recent posts