자바 에서 set 집합 사용 방법
3035 단어 자바
java. util. HashSet 류 는 자바. util. set 인 터 페 이 스 를 실현 했다.
그것 은 다음 과 같은 특징 이 있다.
1. 중복 요소 가 나타 나 지 않도록 합 니 다. 2. 집합 중의 원소 의 순 서 를 보장 하지 않 는 다. 3. 값 이 null 인 요 소 를 포함 할 수 있 지만, 최대 한 개의 null 요소 만 있 을 수 있 습 니 다.
다음 코드 는 hashSet 을 이용 하여 중복 되 지 않 는 그룹 Id 를 가 져 옵 니 다.
public static List getGroups(List resourceList) {
Set set = new HashSet();
for (Resource resource : resourceList) {
if (StringUtils.isNotBlank(resource.groupIds)) {
for (String groupId : StringUtils.split(resource.groupIds, ",")) {
if (StringUtils.isNotBlank(groupId)) {
set.add(Long.parseLong(groupId));
}
}
}
}
return new ArrayList(set);
}
2.TreeSet
TreeSet 은 정렬 등 기능 을 실현 할 수 있 는 집합 으로 대상 요 소 를 집합 에 추가 할 때 특정한 비교 규칙 에 따라 질서 있 는 대상 서열 에 자동 으로 삽입 합 니 다.
TreeSet 은 대상 을 어떻게 정렬 합 니까?TreeSet 지원 두 가지 정렬 방식: 자연 정렬 과 고객 화 정렬, 기본 적 인 상황 에서 자연 정렬 입 니 다. JDK 에 서 는 Integer, Double, String 등 Comparable 인터페이스 에 compare To (Object o) 방법 이 있 습 니 다. 이것 은 정수 형식 을 되 돌려 줍 니 다. 표현 식 x. compare To (y) 에 대해 반환 값 이 0 이면 x 와 y 가 같 음 을 나타 내 고 반환 값 이 0 보다 크 면 x 가 y 보다 크 고 0 보다 작 으 면 x 를 나타 냅 니 다. TreeSet 호출 대상 의 copare To () 방법 은 집합 대상 의 크기 를 비교 한 다음 에 오름차 순 서 를 정렬 하 는 방식 을 자연 정렬 이 라 고 합 니 다. 클 라 이언 트 정렬: java. util. Comparator 인 터 페 이 스 는 구체 적 인 정렬 방식 을 지정 하 는 데 사 용 됩 니 다. compare (Object obj 1, Object obj 2) 가 있 습 니 다. 두 대상 의 크기 를 비교 하 는 데 사 용 됩 니 다. 표현 식 compare (x, y) 의 값 이 0 보다 크 면 x 는 y 보다 크 고 0 보다 작 으 면 x 는 y 보다 작 으 며 0 과 같 으 면 x 는 y 와 같 음 을 나타 내 고 TreeSet 을 Customer 대상 에 따라 name 속성 을 내림차 순 으로 배열 하면 Comparator 인 터 페 이 스 를 실현 하 는 클래스 CustomerComparator 를 먼저 만 들 수 있 습 니 다. 예 를 들 어: import java.util.*; public class CustomerComparator implements Comparator { public int compare(Object o1,Object o2) { Customer c1=(Custoemr)o1; Customer c2=(Customer)o2; if(c1.getName().compareTo(c2.getName())>0) return -1; if(c1.getName().compareTo(c2.getName())<0) return 1; return 0; } } 다음은 TreeSet 의 인 스 턴 스 를 구성 할 때 TreeSet (Comparator comparator) 구조 방법 을 사용 합 니 다. Set set=new TreeSet(new CustomerComparator()); Customer c1=new Customer("TOM",15); Customer c2=new Customer("JACK",20); Customer c3=new Customer("MIKE",38); set.add(c1);set.add(c2);set.add(c3); Iterator it=set.iterator(); while(it.hasNext()) {Custoemr customer=(Customer)it.next(); System.out.println(customer.getName()+""+customer.getAge();) } TreeSet 이 집합 에 Customer 대상 을 추가 할 때 Customer Comparator 류 의 compare () 방법 으로 정렬 합 니 다. 이상 Tree 는 Customr 대상 의 name 속성 을 내림차 순 으로 배열 하고 마지막 으로 출력 은: TOM 15 MIKE 38 JACK 16
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.