TreeSet, TreeMap comparator 본문

Programming/Java

TreeSet, TreeMap comparator

halatha 2011. 4. 6. 03:47
http://blog.naver.com/PostView.nhn?blogId=kimhw9999&logNo=90063726507&viewDate=&currentPage=1&listtype=0
import java.util.*;

public class TestSortSetAndMap
{
	public static void main(final String[] args)
	{
		System.out.println("==========\tset sorting by value");
		Set	set	=	new HashSet();
		set.add(new String("김삿갓"));
		set.add(new String("홍길동"));
		set.add(new String("춘향이"));
		set.add(new String("이도령"));
		set.add(new String("향단이"));
		System.out.println("HashSet: " + set);

		TreeSet	ts	=	new TreeSet();
		ts.addAll(set);
		System.out.println("TreeSet: " + ts);

		System.out.println("==========\tmap sorting by value");
		Map	map	=	new HashMap();
		map.put("홍길동", new Integer(1));
		map.put("김삿갓", new Integer(2));
		map.put("춘향이", new Integer(3));
		map.put("이도령", new Integer(4));
		map.put("향단이", new Integer(5));
		System.out.println("HashMap: " + map);

		Map	sortedMap	=	new TreeMap();
		sortedMap.putAll(map);
		System.out.println("TreeMap: " + sortedMap);
	}
}

import java.util.*;

class Score	{
	private int	korea	=	0;
	private int	math	=	0;
	public Score(int korea, int math)	{
		this.korea	=	korea;
		this.math	=	math;
	}
	public int getSum()	{
		return	this.korea	+	this.math;
	}
	public String toString()	{
		return	"국어: " + korea + " 수학: " + math;
	}
}

class MyComparator implements Comparator	{
	public int compare(T o1, T o2)	{
		Score	s1	=	(Score)o1;
		Score	s2	=	(Score)o2;
		int	r	=	s1.getSum() - s2.getSum();
		if ( 0 < r )	{
			return	1;	//	ascending
		} else if ( 0 == r )	{
			return	0;
		} else	{
			return	-1;	//	descending
		}
	}
}

public class TestTreeSetComparator	{
	public static void main(String[] args)	{
		TreeSet	tset	=
				new TreeSet(new MyComparator());
		tset.add(new Score(21, 22));
		tset.add(new Score(61, 62));
		tset.add(new Score(81, 82));
		tset.add(new Score(11, 12));
		tset.add(new Score(31, 32));
		System.out.println("TreeSet: " + tset);
	}
}

import java.util.*;

public class TestTreeMapComparator	{
	public static void main(final String[] args)	{
		TreeMap	tmap	=
				new TreeMap(new MyComparator());
		tmap.put(new Score(21, 22), "홍길동");
		tmap.put(new Score(61, 62), "김삿갓");
		tmap.put(new Score(81, 82), "이도령");
		tmap.put(new Score(11, 12), "춘향이");
		tmap.put(new Score(31, 32), "향단이");
		System.out.println("TreeMap sorting: " + tmap);
	}
}
Comments