▸JAVA/라이브러리(API)

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

코데방 2019. 12. 11.
728x90

[ TreeSet Class ]

  • 중복 없는 데이터 집합을 다룸
  • HashSet에 비해 상대적으로 데이터 처리 속도가 느리지만 다른 컬렉션에 비해 빠름
  • TreeMap Class와 유사한 작동 원리

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

 

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

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

 

 

 


[ 생성자 ]

  • new TreeSet<값 제네릭>()
  • 인자값으로 다른 컬렉션을 줄 수 있음

[ add() ]

  • 값 추가, 중복값은 무시
  • 객체의 경우 중복값을 피하기 위해 hashcode()와 equals() 메소드를 필히 오버라이딩 해줘야 함

2019/12/10 - [JAVA/기본 문법] - 객체의 등가성(객체 비교)_equals 메소드 [3/4]

2019/12/10 - [JAVA/기본 문법] - 객체의 등가성(객체 비교)_hashCode 메소드 [4/4]

package study.first;

import java.util.TreeSet;

public class Main {

	public static void main(String[] args) {

		String[] value = { "zip", "banana", "apple", "candy", "enum", "dog", "dog", "enum" };
		TreeSet<String> list = new TreeSet<String>();
		
		for(int i = 0; i < value.length; i++)
			list.add(value[i]);
				
		System.out.println(list); // [apple, banana, candy, dog, enum, zip]
		
		// 다른 컬렉션을 인자값으로 넣어줄 수 있음
		TreeSet<String> list2 = new TreeSet<String>(list);		
		System.out.println(list2); // [apple, banana, candy, dog, enum, zip]
	}
}

 


 

[ first() / last() ]

  • 가장 큰 값, 가장 작은 값 반환
package study.first;

import java.util.TreeSet;

public class Main {

	public static void main(String[] args) {

		String[] value = { "zip", "banana", "apple2", "apple1", "dog", "enum" };
		TreeSet<String> list = new TreeSet<String>();
		
		for(int i = 0; i < value.length; i++)
			list.add(value[i]);
				
		System.out.println(list.first());   // "apple1"
		System.out.println(list.last());    // "zip"
		
	}
}

 


 

[ lower() / higher() / floor() / ceiling() ]

  • lower : 제공된 값보다 작은 값 중 가장 큰 값 (인자값 미포함)
  • higher : 제공된 값보다 큰 값 중 가장 작은 값 (인자값 미포함)
  • floor : 제공된 값과 같거나 작은 값 중 가장 큰 값 (인자값 포함)
  • ceiling : 제공된 값보다 크거나 같은 값 중 가장 작은 값 (인자값 포함)
package study.first;

import java.util.TreeSet;

public class Main {

	public static void main(String[] args) {

		String[] value = { "zip", "banana", "apple2", "apple1", "dog", "enum" };
		TreeSet<String> list = new TreeSet<String>();
		
		for(int i = 0; i < value.length; i++)
			list.add(value[i]);
				
		System.out.println(list.lower("dog"));   // "banana"
		System.out.println(list.higher("dog"));  // "enum"
		
		System.out.println(list.floor("dog"));   // "dog"
		System.out.println(list.ceiling("dog")); // "dog"
		
	}
}

 


 

[ pollFirst / pollLast ]

  • 가장 작은 값 / 가장 큰 값을 반환 후 삭제
package study.first;

import java.util.TreeSet;

public class Main {

	public static void main(String[] args) {

		String[] value = { "zip", "banana", "apple2", "apple1", "dog", "enum" };
		TreeSet<String> list = new TreeSet<String>();

		for (int i = 0; i < value.length; i++)
			list.add(value[i]);

		System.out.println(list.pollFirst()); // "apple1" 반환 후 삭제
		System.out.println(list.pollLast()); // "zip" 반환 후 삭제

		System.out.println(list); // [apple2, banana, dog, enum]
	}
}

 

728x90

댓글

💲 추천 글