▸JAVA/라이브러리(API)

java.util.Collections 주요 메소드 [1/1]

코데방 2019. 12. 12.
728x90

[ Collections Class ]

  • 모두 static 메소드로 구성됨
  • 컬렉션 타입의 객체에 대한 객체생성, 정렬, 병합, 검색 등의 알고리즘을 구현

컬렉션 프레임워크의 기본 개념과 배열 사용법은 아래 링크글을 참조하시면 됩니다.

2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4]

2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_MAP 계열 [2/4]

2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4]

2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_배열 다루기 [4/4]

 


 

[ max() / min() ]

  • 지정된 컬렉션의 가장 큰 요소 / 가장 작은 요소를 반환
package study.first;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {

	public static void main(String[] args) {

		// 배열 및 List 타입 인스턴스 생성
		Integer[] list = { 1123, 1412, 23, 44, 512132 };
		List<Integer> arr = new ArrayList<>(Arrays.asList(list));
		
		System.out.println(Collections.max(arr)); // 512132
		System.out.println(Collections.min(arr)); // 23
	}
}

 


 

[ sort() ]

  • 지정된 컬렉션을 오름차순으로 정렬
package study.first;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {

	public static void main(String[] args) {

		// 배열 및 List 타입 인스턴스 생성
		Integer[] list = { 1123, 1412, 23, 44, 512132 };
		List<Integer> arr = new ArrayList<>(Arrays.asList(list));

		Collections.sort(arr);
		System.out.println(arr);  // [23, 44, 1123, 1412, 512132]
	}
}

 


 

[ shuffle() ]

  • 지정된 컬렉션의 값을 랜덤으로 뒤섞어줌
package study.first;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {

	public static void main(String[] args) {

		// 배열 및 List 타입 인스턴스 생성
		Integer[] list = { 1123, 1412, 23, 44, 512132 };
		List<Integer> arr = new ArrayList<>(Arrays.asList(list));

		Collections.shuffle(arr);
		System.out.println(arr); // [23, 1412, 512132, 1123, 44]

		Collections.shuffle(arr);
		System.out.println(arr); // [1412, 23, 44, 1123, 512132]
	}
}

 


 

[ binarySearch() ]

  • 지정된 컬렉션의 값 찾아줌
  • indexOf() 메소드와 동일
  • 이진 적색 알고리즘을 사용해 인덱스 0 → 끝 순서로 값을 검색해서 최초 검색된 값의 인덱스를 반환
package study.first;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {

	public static void main(String[] args) {

		// 배열 및 List 타입 인스턴스 생성
		Integer[] list = { 1123, 1412, 23, 44, 512132 };
		List<Integer> arr = new ArrayList<>(Arrays.asList(list));

		System.out.println(Collections.binarySearch(arr, 44)); // 3
	}
}

 


 

[ disjoint() ]

  • 두 개의 컬렉션을 비교해서 일치하는 값이 하나도 없으면 true, 하나라도 있으면 false 반환
package study.first;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {

	public static void main(String[] args) {

		// 배열 및 List 타입 인스턴스 생성
		Integer[] list = { 1123, 1412, 23, 44, 512132 };
		List<Integer> arr = new ArrayList<>(Arrays.asList(list));

		// 배열 및 List 타입 인스턴스 생성
		Integer[] list2 = { 121, 23542, 123, 1, 41234 };
		List<Integer> arr2 = new ArrayList<>(Arrays.asList(list2));

		System.out.println(Collections.disjoint(arr, arr2)); // true
	}
}

 


 

[ copy() ]

  • 지정된 컬렉션의 모든 요소를 새로운 컬렉션으로 복사해서 반환
  • copy(dest, source)로 인자 전달
  • dest.size()가 source.size()보다 작으면 에러
  • 특이한점은 전체 배열의 크기가 아닌, size()를 기준으로 에러 여부가 발생하는 점에 유의
  • 기존 dest 배열의 앞쪽에 삽입
package study.first;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {

	public static void main(String[] args) {

		// 배열 및 List 타입 인스턴스 생성
		List<Integer> source = new ArrayList<>();
		source.add(1000);
		source.add(2000);
		System.out.println(source.size()); // 2

		List<Integer> dest = new ArrayList<>();
		dest.add(10);
		System.out.println(dest.size()); // 1
		
//		dest.size() == 1 < source.size() == 2인 상태, 에러
//		Collections.copy(dest, source);
//		System.out.println(dest);
		
		dest.add(100);
		dest.add(101);		
		System.out.println(dest.size()); // 2
		
		// size()를 source와 같거나 크게 증가시키면 정상작동
		Collections.copy(dest, source);
		System.out.println(dest);  // [1, 2, 101]		
	}
}

 


 

[ reverse() ]

  • 지정된 컬렉션의 순서를 역으로 변경
package study.first;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {

	public static void main(String[] args) {

		// 배열 및 List 타입 인스턴스 생성
		
		Integer[] arr = {1,2,3,4,5};
		List<Integer> list = new ArrayList<>(Arrays.asList(arr));
		
		System.out.println(list); // [1, 2, 3, 4, 5]
		
		Collections.reverse(list);
		System.out.println(list); // [5, 4, 3, 2, 1]
	}
}

 

728x90

댓글

💲 추천 글