API学习TreeSet
来源:互联网 发布:携程国际业务部 知乎 编辑:程序博客网 时间:2024/06/03 21:34
package com.wonders.week01.collection;import java.util.Comparator;import java.util.Iterator;import java.util.NavigableSet;import java.util.SortedSet;import java.util.TreeSet;/** * JDK1.7 * TreeSet * (1)继承自AbstractSet,实现了Set接口和SortedSet及NavigableSet接口 * (2)NavigableSet接口的实现是基于TreeMap的,元素的顺序是使用它们的自然排序,或者是在设置创建时提供的比较器,这取决于使用的构造函数 * (3)对于add, remove 和contains的实现的操作的算法时间复杂度是log(n) * (4)TreeSet是一个非线程安全的类 * (5)请注意,如果要正确地实现set接口,那么一个set(无论是否提供显式比较器)所维护的排序必须与equals保持一致 * 可以通过阅读Comparator 或者Comparable对于与equals保持一致定义会有更加细致的了解。这是因为Set接口是在equals操作的条件下定义的 * 但是TreeSet实例使用它的compareTo(或compare)方法执行所有元素比较。从Set集合的角度来看,equals个方法被认为等于的两个元素是相等的 * (6)既是集合的顺序与equals不保持一致,但是集合的行为是被定义好的,它只能遵守Set接口的一般规则。 * @author liyongyong * */public class TreeSetTest { public static void main(String[] args) { TreeSet<Integer> treeSet = new TreeSet<Integer>(); TreeSet<Integer> tSet = new TreeSet<Integer>(); //向集合中添加元素,如果元素不存在则添加到集合中返回true,如果集合中存在此元素,则返回false,原来存在的元素不会改变 treeSet.add(1); treeSet.add(2); treeSet.add(3); tSet.add(4); tSet.add(5); tSet.add(7); //返回treeset集合元素的个数 int size = treeSet.size(); System.out.println("集合元素个数是 : " + size); //返回set集合中元素的迭代,按照升序的顺序进行迭代 Iterator<Integer> result = treeSet.iterator(); while (result.hasNext()) { Integer integer = (Integer) result.next(); System.out.print(integer + " "); } System.out.println(); //返回set集合中元素的迭代,按照降序的顺序进行迭代 Iterator<Integer> res = treeSet.descendingIterator(); while (res.hasNext()) { Integer integer = (Integer) res.next(); System.out.print(integer + " "); } System.out.println(); //返回set集合中元素的迭代,按照降序的顺序进行迭代 NavigableSet<Integer> num =tSet.descendingSet(); for (Integer integer : num) { System.out.print( integer + " "); } System.out.println(); //判断集合是否为空,为空返回true,否则返回false boolean empty = treeSet.isEmpty(); System.out.println("集合是否为空: " + empty); //判断集合中是否包含此元素 boolean contains = treeSet.contains(1); System.out.println("集合中是否包含此对象 : " + contains); //从集合中移除一个对象,如果移除成功返回true,否则返回false boolean remove = treeSet.remove(1); System.out.println("集合中的元素1是否被成功移除 : " + remove); //移除掉该集合中的所有元素,没有返回值 //treeSet.clear(); //把集合中元素添加到Set中 treeSet.addAll(tSet); for(Integer integer:treeSet){ System.out.print(integer + " "); } System.out.println(); //返回该集合的部分视图,其元素范围从fromElement到toElement。 //第一个参数表示从哪个元素开始,第三个元素表示到哪个元素截止 //第二个元素为true表示包含开始元素,为false表示不包含开始元素 //第四个元素为true表示包含结尾元素,为false表示不包含结束元素 NavigableSet<Integer> integer = treeSet.subSet(3, true, 4, true); for (Integer result1 : integer) { System.out.print( result1 + " "); } System.out.println(); //返回集合中的一部分数据,返回的集合数据是当第二个参数为true时,小于或者等于第一个参数的值 NavigableSet<Integer> num1 = treeSet.headSet(4,true); for (Integer integer2 : num1) { System.out.print(integer2 + " "); } System.out.println(); //返回集合中的一部分数据,返回的集合数据是当第二个参数为true时,大于或者等于第一个参数的值 NavigableSet<Integer> num2 = treeSet.tailSet(3,true); for (Integer integer2 : num2) { System.out.print(integer2 + " "); } System.out.println(); //返回集合中的一部分数据,开始元素是第一个参数,结束元素是第二个参数。 //结果是包含开始元素,不包含结束元素 SortedSet<Integer> sort = treeSet.subSet(2, 4); for(Integer nuInteger:sort){ System.out.print(nuInteger + " "); } System.out.println(); //返回的结果集是完全小于指定元素的集合中的元素 SortedSet<Integer> rSet = treeSet.headSet(4); for(Integer in:rSet){ System.out.print(in + " "); } System.out.println(); //返回集合中的子集,子集的元素是大于或者等于指定元素的值 SortedSet<Integer> integers = treeSet.tailSet(3); for(Integer s:integers){ System.out.print(s + " "); } //返回用于在此集合中排序元素的比较器,如果该集合使用元素的自然排序,则返回null Comparator<? super Integer> c = treeSet.comparator(); System.out.println(c); //返回该集合中元素最小的一个 Integer first = treeSet.first(); System.out.println("集合中的最小值是 : " + first); //返回集合中元素最大的一个 Integer last = treeSet.last(); System.out.println("集合中的最大值是: " + last); //返回这个集合中最大的元素小于或等于给定元素,如果没有这样的元素,则返回null。 Integer sInteger =treeSet.floor(4); System.out.println("小于或者等于指定元素的最大值是 : " + sInteger); //返回这个集合中最小元素大于或等于给定元素,如果没有这样的元素,则返回null Integer rInteger = treeSet.ceiling(5); System.out.println("大于或者等于指定元素的最小值是 : " + rInteger); //返回集合中完全大于指定元素的最小的元素,如果不存在这样的元素,则返回null Integer zd = treeSet.higher(3); System.out.println("大于指定元素的值是 : " + zd); //返回这个集合中最大的元素,严格小于给定的元素,如果没有这样的元素,则返回null Integer max = treeSet.lower(4); System.out.println("严格小于给定的元素的元素是 : " +max); //检索并删除第一个(最低)元素,或者如果这个集是空的,则返回null Integer pollFirst = treeSet.pollFirst(); System.out.println("最低的元素是 : " + pollFirst); //检索并删除最后一个(最高)元素,或者如果这个集是空的,则返回null Integer pollLast = treeSet.pollLast(); System.out.println("最高的元素是 : " + pollLast); }}
阅读全文
0 0
- API学习TreeSet
- TreeSet学习
- JAVA学习第三十七课(常用对象API)— Set集合:TreeSet集合、比较器
- java TreeSet 学习
- 学习日记java TreeSet
- TreeSet学习小结
- JavaSE 学习参考:TreeSet
- Java学习之TreeSet
- java中TreeSet学习
- java日常学习:TreeSet
- java HashSet / TreeSet 学习
- API集合框架-Set集合之TreeSet
- 集合类的学习--TreeSet
- JAVAAPI学习值TreeSet类
- Java 集合学习<2>TreeSet
- TreeSet的学习和使用
- TreeSet学习的个人记录
- TreeSet
- volatile
- UDP通信在NAT(NAPT/内网穿透)中Session保持实现与效果测试
- 斯坦福大学公开课机器学习课程(Andrew Ng)七最优间隔分类器
- HeadFirst设计模式笔记
- 01.Web基础知识 第二章 Web开发基础知识
- API学习TreeSet
- 机器人多变量控制方法简述
- Tomcat搭建
- 解决:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Bu
- 设计模式小结
- scikit-learn学习笔记(四)Ridge Regression ( 岭回归 )
- 【STM32】 keil软件工具--工程目标选项配置(下)
- Java 的NIO的使用
- js基础 事件基础二