S.S.G
Collections 클래스 활용 본문
* HashMap은 1000개 이하의 데이터를 찾고 싶을 때 사용 하면 되지만, 데이터가 점점 더 많이지면 binarySearch(이진검색)이 더 빠르게 작동함.
* 클래스들의 배열형태는 Collections.binarySearch 를 통해 이진검색할 수 있다. (Collection.sort() 는 list, Arrays. sort() 는 array 에서 사용)
* 인덱스에서 -1 (음수) 나오면 못찾았다는 의미.
* 정렬이 된 후 이진 검색을 하여야 한다.
Collections 클래스를 활용하여 문자열 정렬, 반대로 정렬, 이진 검색 등을 실행하는 예제.
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
public class Test {
static void printList(LinkedList<String> l) { // 리스트의 요소를 모두 출력하는 메소드
Iterator<String> iterator = l.iterator(); // Iterator 객체 리턴
while (iterator.hasNext()) { //Iterator 객체에 요소가 있을 때까지 반복
String e = iterator.next(); // 다음 요소 리턴
String separator;
if (iterator.hasNext())
separator = "->";
else
separator = "\n"; // 마지막 요소이면 줄 바꾸기
System.out.print(e + separator);
}
}
public static void main(String arg[]) {
LinkedList<String> myList = new LinkedList<String>();
myList.add("고기");
myList.add("스파케티");
myList.add("햄버거");
myList.add("리조또");
myList.add("파스타");
Collections.sort(myList); // 요소 정령하기 sort
printList(myList);
int index = Collections.binarySearch(myList, "파스타") + 1; //인덱스 검색
System.out.println("파스타는 " + index + "번째 요소입니다.");
Collections.reverse(myList); // 요소의 순서를 반대로 구성
printList(myList);
}
}
실행 결과
고기->리조또->스파게티->파스타->햄버거
파스타는 4번째 요소입니다.
햄버거->파스타->스파게티->리조또->고기
'코딩 > JAVA' 카테고리의 다른 글
MouseListener 사용 해보기 (0) | 2016.07.04 |
---|---|
이벤트 리스너 작성해보기(내부클래스, 독립된 클래스, 익명 클래스) (0) | 2016.07.04 |
HashMap<K,V> (0) | 2016.07.01 |
제네릭 컬렉션 활용 - ArrayList<E> (0) | 2016.07.01 |
StringTokenizer 클래스 (0) | 2016.07.01 |