S.S.G

Collections 클래스 활용 본문

코딩/JAVA

Collections 클래스 활용

자유로운개발 2016. 7. 4. 10:44
반응형

* 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번째 요소입니다.
햄버거->파스타->스파게티->리조또->고기

반응형