此类中的元素没有特定顺序,简单放入即可,但要注意的是,不能有重复元素。此类继承了Collection,也包含其方法
常用实现类
HashSet类:实现Set接口,不保证Set集合的迭代顺序(指按照一定顺序挨个访问每一个元素),特别是不保证顺序恒定不变。可以使用null元素
TreeSet类:实现Set接口及java.util.SortedSet接口,所以在遍历集合时按照自然顺序递增排序,也可按照指定比较器递增排序
TreeSet类新增方法
方法 | 功能 |
---|---|
first() | 返回该集合中当前第一个(最低)元素 |
last() | 返回该集合中当前最后一个(最高)元素 |
comparator() | 返回对该集合元素进行排序的比较器,若使用自然排序,则返回null |
headSet(E toElement) | 返回一个新的集合,新集合是toElement(不包含)之前的对象 |
subSet(E fromElement, E fromElement) | 返回一个新的集合,fromElement(包含)与fromElement(不包含)之间的对象 |
tailSet(E fromElement) | 返回一个新的集合,fromElement(包含)之后的对象 |
用迭代器按顺序输出
import java.util.Iterator; import java.util.TreeSet; public static void main(String[] args) { TreeSet set= new TreeSet(); set.add(-4); set.add(6); set.add(7); set.add(0); set.add(2); Iterator<Integer>it= set.iterator();//创建迭代器,按自然顺序输出 while(it.hasNext()){ System.out.println(it.next()+"\t"); } }
TreeSet方法实例
import java.util.TreeSet; public static void main(String[] args) { TreeSet set=new TreeSet(); set.add(1); set.add(2); set.add(3); set.add(4); System.out.println(set.first());//1 如果是字母或汉字,则会按照对应的数字来排序输出,输出的还是汉字 System.out.println(set.last());//4 System.out.println(set.headSet(2));//[1] System.out.println(set.subSet(1,3));//[1,2] System.out.println(set.tailSet(2));//[2,3,4] }