> Java > java지도 시간 > 본문

목록 및 컬렉션에 대한 정적 메서드

WBOY
풀어 주다: 2024-07-16 16:57:12
원래의
485명이 탐색했습니다.

Collections 클래스에는 컬렉션과 목록에서 일반적인 작업을 수행하는 정적 메서드가 포함되어 있습니다. 이 섹션에서는 배열 목록에 대한 Collections 클래스의 여러 정적 메서드를 소개했습니다. 컬렉션 클래스에는 sort, binarySearch, reverse, shuffle, copy가 포함됩니다. , 목록의 경우 fill 메소드, 컬렉션의 경우 max, min, disjoint주파수 메소드, 아래 그림과 같습니다.

Image description

Comparable 인터페이스의 compareTo 메소드를 사용하여 목록의 비교 가능한 요소를 자연스러운 순서로 정렬할 수 있습니다. 요소를 정렬하기 위해 비교기를 지정할 수도 있습니다. 예를 들어 다음 코드는 목록의 문자열을 정렬합니다.

목록 list = Arrays.asList("red", "green", "blue");
Collections.sort(목록);
System.out.println(목록);

출력은 [파랑, 초록, 빨강] 입니다.

이전 코드는 목록을 오름차순으로 정렬합니다. 내림차순으로 정렬하려면 Collections.reverseOrder() 메서드를 사용하여 요소를 자연 순서와 반대로 정렬하는 Comparator 객체를 반환하면 됩니다. 예를 들어 다음 코드는 문자열 목록을 내림차순으로 정렬합니다.

목록 list = Arrays.asList("노란색", "빨간색", "녹색", "파란색");
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));

목록 list2 = Arrays.asList("파란색", "녹색", "빨간색");
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].

를 표시합니다.

목록 list = Arrays.asList("노란색", "빨간색", "녹색", "파란색");
Collections.reverse(목록);
System.out.println(목록);

shuffle(List) 메소드를 사용하여 목록의 요소 순서를 무작위로 변경할 수 있습니다. 예를 들어, 다음 코드는 list.

의 요소를 섞습니다.

목록 list = Arrays.asList("노란색", "빨간색", "녹색", "파란색");
Collections.shuffle(목록);
System.out.println(목록);

shuffle(List, Random) 메서드를 사용하여 지정된 Random 개체가 있는 목록의 요소를 무작위로 재정렬할 수도 있습니다. 지정된 Random 객체를 사용하면 동일한 원본 목록에 대해 동일한 요소 시퀀스가 ​​포함된 목록을 생성하는 데 유용합니다. 예를 들어, 다음 코드는 list.

의 요소를 섞습니다.

목록 list1 = Arrays.asList("노란색", "빨간색", "녹색", "파란색");
목록 list2 = Arrays.asList("노란색", "빨간색", "녹색", "파란색");
Collections.shuffle(list1, new Random(20));
Collections.shuffle(list2, new Random(20));
System.out.println(list1);
System.out.println(list2);

list1list2가 셔플링 전후에 동일한 요소 순서를 갖는 것을 볼 수 있습니다.

copy(det, src) 메소드를 사용하면 소스 목록의 모든 요소를 ​​동일한 인덱스의 대상 목록으로 복사할 수 있습니다. 대상 목록은 소스 목록만큼 길어야 합니다. 길이가 길면 소스 목록의 나머지 요소는 영향을 받지 않습니다. 예를 들어 다음과 같습니다
코드는 list2list1으로 복사합니다.

목록 list1 = Arrays.asList("노란색", "빨간색", "녹색", "파란색");
목록 list2 = Arrays.asList("white", "black");
Collections.copy(list1, list2);
System.out.println(list1);

list1의 출력은 [흰색, 검정색, 녹색, 파란색]입니다. copy 메소드는 얕은 복사를 수행합니다. 즉, 소스 목록의 요소 참조만 복사됩니다.

nCopies(int n, Object o) 메소드를 사용하여 지정된 객체의 n개 복사본으로 구성된 불변 목록을 생성할 수 있습니다. 예를 들어 다음 코드는 5개의 Calendar 개체

가 포함된 목록을 만듭니다.

목록 list1 = Collections.nCopies(5, new GregorianCalendar(2005, 0, 1));

nCopies 메소드로 생성된 목록은 변경할 수 없으므로 목록의 요소를 추가, 제거 또는 업데이트할 수 없습니다. 모든 요소에는 동일한 참조가 있습니다.

fill(List list, Object o) 메서드를 사용하면 목록의 모든 요소를 ​​지정된 요소로 바꿀 수 있습니다. 예를 들어 다음 코드는 [검은색, 검은색, 검은색]을 표시합니다.

목록 list = Arrays.asList("red", "green", "blue");
Collections.fill(list, "black");
System.out.println(목록);

maxmin 메소드를 사용하여 컬렉션의 최대 및 최소 요소를 찾을 수 있습니다. Comparable 인터페이스나 Comparator 인터페이스를 사용하여 요소를 비교할 수 있어야 합니다. 예를 들어 다음 코드는 컬렉션에서 가장 큰 문자열과 가장 작은 문자열을 표시합니다.

컬렉션 collection = Arrays.asList("red", "green", "blue");
System.out.println(Collections.max(컬렉션));
System.out.println(Collections.min(컬렉션));

disjoint(collection1, collection2) 메서드는 두 컬렉션에 공통 요소가 없는 경우 true를 반환합니다. 예를 들어 다음 코드에서 disjoint(collection1, collection2)false를 반환하지만 disjoint(collection1, collection3)true를 반환합니다. .

컬렉션 collection1 = Arrays.asList("빨간색", "청록색");
컬렉션 collection2 = Arrays.asList("빨간색", "파란색");
컬렉션 collection3 = Arrays.asList("pink", "tan");
System.out.println(Collections.disjoint(collection1, collection2));
System.out.println(Collections.disjoint(collection1, collection3));

주파수(컬렉션, 요소) 메소드는 컬렉션에서 해당 요소의 발생 횟수를 찾습니다. 예를 들어 주파수(collection, "red")는 다음 코드에서 2를 반환합니다.

컬렉션 collection = Arrays.asList("빨간색", "청록색", "빨간색");
System.out.println(Collections.주파수(컬렉션, "빨간색"));

위 내용은 목록 및 컬렉션에 대한 정적 메서드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!