자바 학습 · 세트

2216 단어
Set: 순서 가 없 으 면 요 소 를 반복 할 수 없습니다 | - HashSet: 데이터 구 조 는 해시 표 입 니 다. 스 레 드 는 동기 화 되 지 않 는 보증 요소 의 유일한 원리 입 니 다. 요소 의 hashCode 값 이 같 는 지 판단 하고 같 으 면 요소 의 equals 방법 을 판단 할 수 있 습 니 다.true | - TreeSet 인지 여부: Set 집합 에 있 는 요 소 를 정렬 할 수 있 습 니 다. 바 텀 데이터 구 조 는 이 진 트 리 가 요소 의 유일 성 을 확보 하 는 근거 copare To 방법 return 0. TreeSet 정렬 의 첫 번 째 방식 으로 요소 자체 가 비교 요 소 를 가지 도록 Coparable 인 터 페 이 스 를 실현 해 야 합 니 다. copare To 방법 을 덮어 쓰 는 방식 도 요소 의 자연 순서 라 고 합 니 다.또는 기본 정렬 트 리 셋 이 라 고 하 는 두 번 째 정렬 방식 은 요소 자체 가 비교 성 을 가지 지 않 을 때, 또는 비교 성 을 갖 추 는 것 이 필요 하지 않다.이 럴 때 는 집합 자체 가 비교 성 을 갖 도록 해 야 한다.집합 이 초기 화 되 었 을 때 비교 방식 이 생 겼 다.두 가지 정렬 이 모두 존재 할 때 비교 기 를 위주 로 한다.클래스 를 정의 하여 Comparator 인 터 페 이 스 를 실현 하고 compare 방법 을 덮어 씁 니 다.
<span style="font-size:14px;">import java.util.*;
//import java.lang.*;
class Student1 implements Comparable//             
{
	private String name;
	private int age;
	Student1 (String name,int age)
	{
		this.name=name;
		this.age=age;
	}
	public  String getName()
	{
		return name;
	}
	public int getAge()
	{
		return age;
	}
	public int compareTo(Object obj)
	{
		if(!(obj instanceof Student1))
			throw new RuntimeException("      ");
		Student1 s=(Student1)obj;
		if(this.age>s.age)
			return 1;
		if(this.age==s.age)
		{
			return this.name.compareTo(s.name);
		}
		 return -1;
	}
	
	
}
class MyCompare implements Comparator
{
	public int compare(Object o1,Object o2)
	{
		Student1 s1=(Student1)o1;
		Student1 s2=(Student1)o2;
		//int num= s1.getName().compareTo(s2.getName());
		//if(num==0)
		//{
			return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
			/*if(s1.getAge()>s2.getAge())
				return 1;
			if(s1.getAge()==s2.getAge())
				return 0;
			return -1;*/
		//}
	}
}
public class TreeSetDemo {
	public static void main(String[] args)
	{
		TreeSet ts=new TreeSet(new MyCompare());
		ts.add(new Student1("lisi",19));
		ts.add(new Student1("wangwu",18));
		ts.add(new Student1("zhangsan",20));
		ts.add(new Student1("zhaoi",19));
		Iterator it=ts.iterator();
		while(it.hasNext())
		{
			Student1 stu=(Student1)it.next();
			System.out.println(stu.getName()+stu.getAge());
		}
	}
}
</span>

좋은 웹페이지 즐겨찾기