java树集的使用

/*树集是一个有序集合,你可以按照任何顺序将元素插入该集合
 * 当对该集合进行迭代时,各个值将自动以自动排序后的顺序出现

 *Set是不能存放重复的对象,而List是可以存放重复的对象*/
import java.util.*;
public class TreeSetTest {
    public static void main(String []args)
    {
     /*Item是自己定义的对象,要将自己定义的对象插入树集,
      * Item类必须实现Compareable接口*/
     SortedSet<Item> parts=new TreeSet<Item>();
        parts.add(new Item("c-first",1234));
        parts.add(new Item("b-second",4578));
        parts.add(new Item("a-third",9012));
        //System.out.println(parts);
        Iterator iter=parts.iterator();
        while(iter.hasNext())
         System.out.println(iter.next());
        /*将一个Comparator对象传递给树集的构造器
         * Comparator接口声明一个compare方法
         * 实现对于同一个类(例如Item)不同树集对象
         * 能按照不同的部件进行排序*/
        SortedSet<Item> sortByDescription=new TreeSet<Item>(
          new Comparator<Item>()
          {
           public int compare(Item a,Item b)
           {
            String descrA=a.getDescription();
            String descrB=b.getDescription();
            return descrA.compareTo(descrB);
           }
          });
        sortByDescription.addAll(parts);
        System.out.println(sortByDescription);
    }
}
class Item implements Comparable<Item>
{
 private String description;
 private int partNumber;
 public Item(String aDescription,int aPartNumber)
 {
  description=aDescription;
  partNumber=aPartNumber;
 }
 public String getDescription()
 {
  return description;
 }
 /*改写对象的toString方法,输出对象时按照此格式输出*/
 public String toString()
 {
  return "[description="+description+",partNumber="+partNumber+"]";
 }
 /*Comparable接口必须实现compareTo方法*/
 public int compareTo(Item other)
 {
  return partNumber-other.partNumber;
 }
}

程序输出结果:

[description=c-first,partNumber=1234]
[description=b-second,partNumber=4578]
[description=a-third,partNumber=9012]
[[description=a-third,partNumber=9012], [description=b-second,partNumber=4578], [description=c-first,partNumber=1234]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值