1.6 Arrays
* Arrays 클래스 : 배열을 다루는데 유용한 메서드가 정의되어 있음. 아래 정의된 toString(), 모든 기본형 배열, 참조형 배열 별로 하나씩 정의됨.
static String toString(boolean[ ]a)
static String toString(byte[ ] a)
static String toString(char[ ] a)
static String toString(short[ ] a)
static String toString(int[ ] a)
static String toString(long[ ] a)
static String toString(float[ ] a)
static String toString(double[ ] a)
static String toString(object[ ] a)
------------------------------------------------------------------------------------------------------------------------------------------------------------
* 배열의 복사
- copyOf() : 배열 전체 복사
- copyOfRange() : 배열의 일부를 복사
하여 새로운 배열을 만들어 반환.
int[ ] arr = {0,1,2,3,4,};
int[ ] arr2 = Arrays.copyOf(arr, arr.length);
int[ ] arr3 = Arrays.copyOf(arr, 3);
int[ ] arr4 = Arrays.copyOf(arr, 7);
int[ ] arr5 = Arrays.copyOfRange(arr,2,4);
int[ ] arr6 = Arrays.copyOfRange(arr,0,7);
// 배열의 복사
package Collection_Framework;
import java.util.*;
public class Arrays1 {
public static void main(String[]arge) {
int[ ] arr = {0,1,2,3,4,};
int[ ] arr2 = Arrays.copyOf(arr, arr.length);
int[ ] arr3 = Arrays.copyOf(arr, 3);
int[ ] arr4 = Arrays.copyOf(arr, 7);
int[ ] arr5 = Arrays.copyOfRange(arr,2,4);
int[ ] arr6 = Arrays.copyOfRange(arr,0,7);
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr2));
System.out.println(Arrays.toString(arr3));
System.out.println(Arrays.toString(arr4));
System.out.println(Arrays.toString(arr5));
System.out.println(Arrays.toString(arr6));
}
}
출력결과 :
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
[0, 1, 2]
[0, 1, 2, 3, 4, 0, 0]
[2, 3]
[0, 1, 2, 3, 4, 0, 0]
* 배열 채우기
- fil() : 배열의 모든 요소를 지정된 값으로 채운다.
- setAll() : 배열을 채우는데 사용할 함수형 인터페이스를 매겨변수로 받는다.
package Collection_Framework;
import java.util.*;
public class Arrays2 {
public static void main(String[] args) {
int[]arr = new int[5];
Arrays.fill(arr, 9);
Arrays.setAll(arr, () -> (int)(Math.random()*5)+1); // 람다식을 지정해야 함.
System.out.println(Arrays.toString(arr));
}
}
출력 결과 :
[9, 9, 9, 9, 9]
* 배열의 정렬과 검색
- sort() : 배열을 정렬할 때 사용
- binarySearch() : 저장된 요소를 검색 할 때 사용, 배열에서 지정된 값이 저장된 위치(index)를 찾아서 반환하는데, 반드시 배열이 정렬된 상태이어야 올바른 결과를 얻음.
package Collection_Framework;
import java.util.*;
public class Arrays3 {
public static void main(String[] args) {
int[] arr = {3,2,0,1,4};
int idx = Arrays.binarySearch(arr, 2);
System.out.println(Arrays.toString(arr));
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
int idx2 = Arrays.binarySearch(arr,2);
}
}
출력 결과 :
[3, 2, 0, 1, 4]
[0, 1, 2, 3, 4] <- 올바른 결과.
* 문자열의 비교와 출력
- equals() : 두 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false를 반환. 일차원 배열에서만 사용가능
- toString() : 일차원 배열에서 문자열로 편하게 출력함.
다차원 배열에서
- deepToString(), deepToEquals() 사용
package Collection_Framework;
import java.util.*;
public class Arrays4 {
public static void main(String[] args) {
int[] arr = {0,1,2,3,4};
int[] [] arr2D = {{11,12},{21,22}};
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.deepToString(arr2D));
String[] [] str2D = new String [] [] {{"aaa","bbb"},{"AAA","BBB"}};
String[] [] str2D2 = new String [] [] {{"aaa","bbb"},{"AAA","BBB"}};
System.out.println(Arrays.equals(str2D, str2D2));
System.out.println(Arrays.deepEquals(str2D, str2D2));
}
}
출력결과 :
[0, 1, 2, 3, 4]
[[11, 12], [21, 22]]
false
true
* 배열을 List로 변환 // 이해가 잘 안감...
- asList(Object... a)
package Collection_Framework;
import java.util.*;
public class Arrays5 {
public static void main(String[] args) {
List list = Arrays.asList(new Integer[] {1,2,3,4,5,});
List<Integer> list = Arrays.asList(1,2,3,4,5);
list.add(6);
}
}
* parallel로 시작하는 메서드(), spliterator(), tream()등등
'Study > Java' 카테고리의 다른 글
Collection Framwork 1.3 LinkedList (0) | 2018.03.05 |
---|---|
Collection Framework 1.2 ArrayList (0) | 2018.03.05 |
java.time 패키지를 이용하여 달력 만들기 (0) | 2018.03.05 |
Collection Framework 1.7 Comparator, Comparable (0) | 2018.02.26 |
Collection Framework 1.5 lterator, Listlterator, Enumeration (0) | 2018.02.26 |