- 동일한 데이터 타입의 연속적인 모임
- 크기 변경을 할 수 없음
- 크기를 변경하거나 중간에 삽입과 삭제를 하고자 하는 경우에는 복사해서 다른 곳에 작업을 해야 합니다.
- 메모리 낭비가 없고 접근 속도도 무난한 편입니다.
- 속성으로 length에 데이터의 개수를 저장하고 있고 [인덱스]를 이용해서 개별적으로 접근이 가능합니다.
- 빠른 열거를 사용할 수 있으므로 for(임시변수:배열명)을 이용해서 전체 데이터를 접근할 수 있습니다.
- 별도의 조작은 java.util.Arrays 클래스의 static 메소드를 이용합니다.
static <T> List<T> asList(T... a)
: 배열이 아니고 매개변수를 여러 개 줄 수 있습니다.
ex) List<String>list = Arrays.asList("Good", "Bad");
위의 메소드 이외에도 copy 와 관련된 메소드가 있습니다.
배열 안의 요소의 값을 비교해서 동일한지를 판단하는 equals 메소드도 있습니다.
sort 메소드가 있습니다.
sort 메소드는 리턴하지 않기 때문에 매개변수로 대입한 배열의 데이터가 정렬됩니다.
sort를 하려면 크기 비교가 가능해야 합니다.
scala 데이터 타입은 전부 크기 비교가 가능하기 때문에 바로 정렬이 가능하다.
scala 데이터 타입이 아닌 데이터의 배열은 Comparable 인터페이스를 implements 하던가 Comparator 인터페이스를 implements 한 클래스의 인스턴스를 매개변수로 대입해야 합니다.(https://github.com/Knockotd/JavaFirst/tree/92e25f3fa10a7c3a0a4660b2850766c0555edd23/simpleis-best.tistory.com_0710/src/Arrays) 에서 Main2.java 와 Application.java 를 참고
(https://github.com/Knockotd/JavaFirst/tree/28f2486c062195738ad1cd2321735333342cc97d/simpleis-best.tistory.com_0711/src/arrayList) 에서 ApplicationMain2.java 와 Application.java 를 참고
binarySearch(배열, 찾고자 하는 데이터) : 배열에서 데이터의 위치를 이분검색을 이용해서 찾아서 리턴합니다. 만약 못찾으면 음수를 리턴합니다.
데이터가 정렬된 경우에만 정확한 결과를 가져올 수 있습니다.
※ 이분검색 : 중앙의 값과 비교해서 일치하면 찾은 것이고 일치하지 않으면 크기비교를 해서 자신의 값이 더 작으면 중앙값의 왼쪽 부분에서 동일한 작업을 수행합니다. 만약 자신의 값이 더 크면 중앙값의 오른쪽 부분에서 작업을 수행합니다.