English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 Java集合框架이 제공하는 다양한 알고리즘을 예제를 통해 배웁니다.
Java集合框架은 다양한 알고리즘을 제공하여 데이터 구조에 저장된 요소를 처리할 수 있습니다.
Java의 알고리즘은 정적 메서드이며, 집합에 다양한操作을 수행할 수 있습니다.
알고리즘이 다양한 집합에 사용될 수 있으므로, "일반 알고리즘。
우리는 콜렉션 프레임워크에서 사용할 수 있는 다양한 메서드의 구현을 확인해 보겠습니다.
sort() 콜렉션 프레임워크가 제공하는 메서드는 요소를 정렬하는 데 사용됩니다. 예를 들어
import java.util.ArrayList; import java.util.Collections; class Main { public static void main(String[] args) { //배열리스트 생성 ArrayList<Integer> numbers = new ArrayList<>(); //요소 추가 numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("정렬되지 않은ArrayList: " + numbers); // sort() 메서드 사용 Collections.sort(numbers); System.out.println("정렬된ArrayList: " + numbers); } }
출력 결과
정렬되지 않은ArrayList: [4, 2, 3] 정렬된ArrayList: [2, 3, 4]
여기서는 자연 순서(오름차순)로 정렬됩니다. 하지만 Comparator 인터페이스를 사용하여 sort() 메서드의 정렬 순서를自定义할 수 있습니다.
자세한 정보를 얻으려면 방문하십시오Java 정렬。
Java Collections框架의 shuffle() 메서드는 데이터 구조 내에서出现的任何 순서를 섞습니다. 이는 정렬과 반대입니다. 예를 들어
import java.util.ArrayList; import java.util.Collections; class Main { public static void main(String[] args) { //배열리스트 생성 ArrayList<Integer> numbers = new ArrayList<>(); //요소 추가 numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("정렬된ArrayList: " + numbers); //shuffle() 메서드 사용 Collections.shuffle(numbers); System.out.println("shuffle를 사용하는ArrayList: " + numbers); } }
출력 결과
정렬된 ArrayList: [1, 2, 3] shuffle를 사용하는 ArrayList: [2, 1, 3]
프로그램을 실행할 때 shuffle() 메서드는 무작위 출력을 반환합니다.
셔플 알고리즘은 무작위 출력이 필요한 게임에서 주로 사용됩니다.
Java에서는, 데이터 처리를 위한 다양한 메서드를 제공하는 콜렉션 프레임워크가 있습니다.
reverse() - 요소의 순서를 반전
fill() - 지정된 값으로 집합 내 모든 요소를 대체
copy() - 지정된 원본에서 목적지로 요소 복사
swap() - 집합 내 두 요소의 위치를 교환
addAll() - 모든 요소를 다른 집합에 추가
예를 들어,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //ArrayList 생성 ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); System.out.println("ArrayList1: " + numbers); // 사용reverse() Collections.reverse(numbers); System.out.println("반전ArrayList1: " + numbers); // 사용swap() Collections.swap(numbers, 0, 1); System.out.println("ArrayList1 사용swap():" + numbers); ArrayList<Integer> newNumbers = new ArrayList<>(); // 사용addAll newNumbers.addAll(numbers); System.out.println("ArrayList2 addAll()를 사용하여 " + newNumbers); // fill()를 사용하여 Collections.fill(numbers, 0); System.out.println("ArrayList1 fill()를 사용하여 " + numbers); // copy()를 사용하여 Collections.copy(newNumbers, numbers); System.out.println("ArrayList2 copy()를 사용하여 " + newNumbers); } }
출력 결과
ArrayList1: [1, 2] ArrayList을 반전1: [2, 1] ArrayList1 swap()를 사용하여: [1, 2] ArrayList2 addALl()를 사용하여: [1, 2] ArrayList1 fill()를 사용하여: [0, 0] ArrayList2 copy()를 사용하여: [0, 0]
주의:copy() 메서드를 실행할 때 두 개의 목록의 크기는 같아야 합니다。
Java集合框架의 binarySearch() 메서드는 지정된 요소를 검색합니다. 그것은 요소가 지정된 집합에서의 위치를 반환합니다. 예를 들어,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //ArrayList 생성 ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); // binarySearch()를 사용하여 int pos = Collections.binarySearch(numbers, 3); System.out.println("3의 위치는 " + pos); } }
출력 결과
3의 위치는 2
주의:binarySearch() 메서드를 실행하기 전에 집합을 정렬해야 합니다。
자세한 정보를 얻으려면 방문하십시오Java 이진 탐색。
frequency() - 집합에서 요소가 존재하는 횟수를 카운트합니다
disjoint() - 두 개의 집합이 공통 요소를 가지고 있는지 확인합니다
예를 들어,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //ArrayList 생성 ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(2); System.out.println("ArrayList1: " + numbers); int count = Collections.frequency(numbers, 2); System.out.println("Count of 2: " + count); ArrayList<Integer> newNumbers = new ArrayList<>(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: " + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("두 개의 목록은 교집합이 없습니까? " + value); } }
출력 결과
ArrayList1: [1, 2, 3, 2] Count of 2: 2 ArrayList2: [5, 6] 두 개의 목록은 교집합이 없습니까? true
Java集合框架의 min()와 max() 메서드는 최소와 최대 요소를 찾는 데 사용됩니다. 예를 들어,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //ArrayList 생성 ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); // min() 사용 int min = Collections.min(numbers); System.out.println("최소 요소: " ); + min); // max() 사용 int max = Collections.max(numbers); System.out.println("최대 요소: " ); + max); } }
출력 결과
최소 요소: 1 최대 요소: 3