首页 > 编程知识 正文

java排序list,treeset底层数据结构

时间:2023-05-03 08:21:16 阅读:18717 作者:4563

一. TreeSet

TreeSet是一种集合,与HashSet不同,他有序,即TreeSet中的数据有序不重复. TreeSet实现了一个名为SortedSet的接口。 由于TreeSet是SortedSet的子类,因此TreeSet具有SortedSet的通用方法。 有关具体情况的详细信息,请参阅SortedSet

二. SortedSet

SortedSet是一个有序的接口,集合中的元素有两种排序规则,一种是Comparable (自然排序),另一种是Comparator。 这个界面值得注意的是

SortedSetsubset(efromElement,E toElement ) :返回值是“fromelement,toelement]”的sortedset集合,如果集合正常,则返回

相反,从元素到元素应该是从大到小的顺序。 也就是说,参数的顺序应该与集合的排列顺序相同。 否则,会抛出IllegalArgumentException异常。

sortedsetheadset(etoelement; 是由上一个已排序元素组成的集合,集合中不包含toElement。

sortedsettailset (要素; 返回包含fromElement的排序编号末尾的元素的集合

E first ) )返回第一个元素(最小的元素)

E last ) )返回最后一个元素(最大的元素)

//自然排序,从小到大排序

SortedSet sortedSet=new TreeSet (;

sortedset.add(1;

sortedset.add(5;

sortedset.add(8;

sortedset.add(10;

sortedset.add(15;

system.out.println (固态集); //[ 1,5,8,10,15 ]

Integer first=sortedSet.first (;

system.out.println(first ); //1

Integer last=sortedSet.last (;

system.out.println(last ); //15

sortedsetsubset=sorted set.subset (5,10;

system.out.println(subset ); //[ 5,8 ]

sortedsettailset=sorted set.tail set (8;

系统. out.println (tail set; //[ 8,10,15 ]

sortedsetheadset=sorted set.headset (8;

system.out.println(headset ); //[ 1,5 ]

//从集合排序大小到欢呼声的大树sorted set=new treeset (new comparator () ) )。

@ overridepublicintcompare (integero 1,Integer o2 ) {return o2-o1;

}

);

sortedset.add(1;

sortedset.add(5;

sortedset.add(8;

sortedset.add(10;

sortedset.add(15;

system.out.println (固态集); //[ 15,10,8,5,1 ]

Integer first=sortedSet.first (;

system.out.println(first ); //15

Integer last=sortedSet.last (;

system.out.println(last ); //1

//如果是逆序,subSet方法的参数也应该是逆序的。 否则,存在异常//sortedsetsubset=sorted set.subset (5,10 ); //Java.lang.illegalargumentexception : fromkeytokey

sortedsetsubset=sorted set.subset (10,5;

system.out.println(subset ); //[ 10,8 ]

sortedsettailset=sorted set.tail set (8;

系统. out.println (tail set; //[ 8,5,1 ]

sortedsetheadset=sorted set.headset (8;

system.out.println(headset ); //[ 15,10 ]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。