Collections 클래스에는 컬렉션과 목록에서 일반적인 작업을 수행하는 정적 메서드가 포함되어 있습니다. 이 섹션에서는 배열 목록에 대한 Collections 클래스의 여러 정적 메서드를 소개했습니다. 컬렉션 클래스에는 sort, binarySearch, reverse, shuffle, copy가 포함됩니다. , 목록의 경우 fill 메소드, 컬렉션의 경우 max, min, disjoint 및 주파수 메소드, 아래 그림과 같습니다.
Comparable 인터페이스의 compareTo 메소드를 사용하여 목록의 비교 가능한 요소를 자연스러운 순서로 정렬할 수 있습니다. 요소를 정렬하기 위해 비교기를 지정할 수도 있습니다. 예를 들어 다음 코드는 목록의 문자열을 정렬합니다.
목록
Collections.sort(목록);
System.out.println(목록);
출력은 [파랑, 초록, 빨강] 입니다.
이전 코드는 목록을 오름차순으로 정렬합니다. 내림차순으로 정렬하려면 Collections.reverseOrder() 메서드를 사용하여 요소를 자연 순서와 반대로 정렬하는 Comparator 객체를 반환하면 됩니다. 예를 들어 다음 코드는 문자열 목록을 내림차순으로 정렬합니다.
목록
Collections.sort(list, Collections.reverseOrder());
System.out.println(목록);
출력은 [노란색, 빨간색, 녹색, 파란색]입니다.
binarySearch 메소드를 사용하여 목록에서 키를 검색할 수 있습니다. 이 방법을 사용하려면 목록을 오름차순으로 정렬해야 합니다. 키가 목록에 없으면 메서드는 -(삽입 지점 +1)을 반환합니다. 삽입 지점은 해당 항목이 있는 경우 목록에 해당 항목이 포함되는 위치라는 점을 기억하세요. 예를 들어 다음 코드는 정수 목록과 문자열 목록에서 키를 검색합니다.
목록 list1 = Arrays.asList(2, 4, 7, 10, 11, 45, 50, 59, 60, 66);
System.out.println("(1) 인덱스: " + Collections.binarySearch(list1, 7));
System.out.println("(2) 인덱스: " + Collections.binarySearch(list1, 9));
목록
System.out.println("(3) 인덱스: " +
Collections.binarySearch(list2, "red"));
System.out.println("(4) 인덱스: " +
Collections.binarySearch(list2, "시안색"));
이전 코드의 출력은 다음과 같습니다.
(1) 색인: 2
(2) 인덱스: -4
(3) 색인: 2
(4) 인덱스: -2
reverse 메서드를 사용하면 목록의 요소를 반전할 수 있습니다. 예를 들어 다음 코드는 [blue, green, red, yellow].
를 표시합니다.목록
Collections.reverse(목록);
System.out.println(목록);
shuffle(List) 메소드를 사용하여 목록의 요소 순서를 무작위로 변경할 수 있습니다. 예를 들어, 다음 코드는 list.
의 요소를 섞습니다.목록
Collections.shuffle(목록);
System.out.println(목록);
shuffle(List, Random) 메서드를 사용하여 지정된 Random 개체가 있는 목록의 요소를 무작위로 재정렬할 수도 있습니다. 지정된 Random 객체를 사용하면 동일한 원본 목록에 대해 동일한 요소 시퀀스가 포함된 목록을 생성하는 데 유용합니다. 예를 들어, 다음 코드는 list.
의 요소를 섞습니다.목록
목록
Collections.shuffle(list1, new Random(20));
Collections.shuffle(list2, new Random(20));
System.out.println(list1);
System.out.println(list2);
list1과 list2가 셔플링 전후에 동일한 요소 순서를 갖는 것을 볼 수 있습니다.
copy(det, src) 메소드를 사용하면 소스 목록의 모든 요소를 동일한 인덱스의 대상 목록으로 복사할 수 있습니다. 대상 목록은 소스 목록만큼 길어야 합니다. 길이가 길면 소스 목록의 나머지 요소는 영향을 받지 않습니다. 예를 들어 다음과 같습니다
코드는 list2를 list1으로 복사합니다.
목록
목록
Collections.copy(list1, list2);
System.out.println(list1);
list1의 출력은 [흰색, 검정색, 녹색, 파란색]입니다. copy 메소드는 얕은 복사를 수행합니다. 즉, 소스 목록의 요소 참조만 복사됩니다.
nCopies(int n, Object o) 메소드를 사용하여 지정된 객체의 n개 복사본으로 구성된 불변 목록을 생성할 수 있습니다. 예를 들어 다음 코드는 5개의 Calendar 개체
가 포함된 목록을 만듭니다.목록
nCopies 메소드로 생성된 목록은 변경할 수 없으므로 목록의 요소를 추가, 제거 또는 업데이트할 수 없습니다. 모든 요소에는 동일한 참조가 있습니다.
fill(List list, Object o) 메서드를 사용하면 목록의 모든 요소를 지정된 요소로 바꿀 수 있습니다. 예를 들어 다음 코드는 [검은색, 검은색, 검은색]을 표시합니다.
목록
Collections.fill(list, "black");
System.out.println(목록);
max 및 min 메소드를 사용하여 컬렉션의 최대 및 최소 요소를 찾을 수 있습니다. Comparable 인터페이스나 Comparator 인터페이스를 사용하여 요소를 비교할 수 있어야 합니다. 예를 들어 다음 코드는 컬렉션에서 가장 큰 문자열과 가장 작은 문자열을 표시합니다.
컬렉션
System.out.println(Collections.max(컬렉션));
System.out.println(Collections.min(컬렉션));
disjoint(collection1, collection2) 메서드는 두 컬렉션에 공통 요소가 없는 경우 true를 반환합니다. 예를 들어 다음 코드에서 disjoint(collection1, collection2)는 false를 반환하지만 disjoint(collection1, collection3)은 true를 반환합니다. .
컬렉션
컬렉션
컬렉션
System.out.println(Collections.disjoint(collection1, collection2));
System.out.println(Collections.disjoint(collection1, collection3));
주파수(컬렉션, 요소) 메소드는 컬렉션에서 해당 요소의 발생 횟수를 찾습니다. 예를 들어 주파수(collection, "red")는 다음 코드에서 2를 반환합니다.
컬렉션
System.out.println(Collections.주파수(컬렉션, "빨간색"));
위 내용은 목록 및 컬렉션에 대한 정적 메서드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!