`

JAVA TreeSet TreeMap Queue Deque PriorityQueue

    博客分类:
  • JAVA
 
阅读更多
public static void main(String[] args) {

		List<Integer> list = Arrays.asList(45,23,12,88,5,16);
		NavigableSet<Integer> nset = new TreeSet<Integer>(list);
		System.out.println(nset);
		
		for(Iterator<Integer> itr  = nset.descendingIterator(); itr.hasNext();){
			System.out.print(itr.next()+"\t");
		}
		System.out.println();
		
		out.println(nset.first() + "\t" + nset.last());
		//---lower than 88 and most closed
		System.out.println(nset.lower(88));
		//--- <=
		System.out.println(nset.floor(88));
		//--- >
		System.out.println(nset.higher(56));
		//---- >=
		System.out.println(nset.ceiling(45));
		System.out.println("=============");
		
        NavigableMap<String, Integer> map = new TreeMap<String, Integer>();  
        
        map.put("56", 91);  
        map.put("8", 22);  
        map.put("86", 3);  
        map.put("22", 88); 
        
        out.println(map.ceilingKey("56"));
        out.println(map.ceilingEntry("56"));
        
        //-- others are similarity
        out.println(map.firstKey() + "\t" +map.firstEntry());
        
        out.println("Before pollFrist==>");
        out.println(map);
        map.pollFirstEntry();
        out.println("After==>"+map+"\n");
        
        //-----set
        out.println(nset);
        nset.pollFirst();
        out.println(nset+"\n"+"=====================");
        
        //---queue linkedlist 实现了 queue 和 list interface
        Queue<String> queue = new LinkedList<String>();
        queue.offer("star");
        queue.offer("tmac");
        queue.offer("kobe");
        out.println(queue.size()+"\t"+queue);
        //head element 
        out.println(queue.peek()+"\t"+queue);
        //get the head element and delete
        out.println(queue.poll()+"\t"+queue);
        //--note: 避免使用add remove elment 方法
        //----Deque 双端队列
        
        Deque<String> ld = new LinkedList<String>();
        Deque<Integer> ad = new ArrayDeque<Integer>();
        
        //---ld
        ld.offer("kobe");
        ld.offerFirst("frist");
        ld.offerLast("last");
        out.println(ld);
        ld.pollFirst();
        out.println(ld);
        out.println(ld.peekFirst());
        ld.removeFirstOccurrence("kobe");
        out.println(ld);
        
        //---------pirorityQueue
        PriorityQueue<GregorianCalendar> pq = new PriorityQueue<GregorianCalendar>();
        pq.offer(new GregorianCalendar(1906,Calendar.DECEMBER,9));
        pq.offer(new GregorianCalendar(1902,Calendar.JULY,9));
        pq.offer(new GregorianCalendar(1916,Calendar.DECEMBER,7));
        pq.offer(new GregorianCalendar(2206,Calendar.JUNE,9));
        
        for(GregorianCalendar date : pq){
        	out.println(date.get(Calendar.YEAR));
        }
        out.println("===========");
        while(!pq.isEmpty()){
        	out.println(pq.remove().get(Calendar.YEAR));
        }
分享到:
评论

相关推荐

    【死磕Java集合】-集合源码分析.pdf

    Java集合框架提供了多种数据结构和算法来存储和操作数据,包括LinkedList、ArrayList、HashMap、TreeMap、HashSet、TreeSet、ArrayBlockingQueue、PriorityQueue等。每种数据结构都有其特点和使用场景,需要根据实际...

    20个最佳的Java集合框架面试题目.zip

    12. **队列(Queue)**:Deque接口扩展了Queue接口,支持双端操作。LinkedList和ArrayDeque是其常见实现。 13. **优先级队列(PriorityQueue)**:基于优先堆实现,元素按照优先级自动排序,插入元素时无需指定位置...

    Java 基础核心总结 +经典算法大全.rar

    LinkedList Queue接口Deque 接口 AbstractQueue 抽象类LinkedList ArrayDeque PriorityQueue 反射的思想及作用 反射的基本使用 获取类的 Class 对象构造类的实例化对象获取-个类的所有信息 获取类中的变量(Field) ...

    java工具类 java开发助手 java util

    4. Queue接口:Queue是先进先出(FIFO)的数据结构,常用实现有LinkedList(作为Deque双端队列使用)、ArrayDeque和PriorityQueue。PriorityQueue按优先级排序,适用于需要排序的队列操作。 5. Map接口:Map用于...

    java数据结构.rar

    在Java中,`java.util.TreeSet`和`java.util.TreeMap`实现了红黑树,提供了有序的键值对存储。二叉搜索树常用于排序和查找,而平衡树如AVL树和红黑树则在保持排序的同时,保证了操作的性能。 图是由顶点和边构成的...

    java数据结构(老外那版,翻译的)

    Java的TreeMap和TreeSet实现了红黑树。 7. **堆**:一种特殊的树形数据结构,满足堆性质(最大堆或最小堆)。Java的PriorityQueue就是基于堆实现的。 8. **图**:由节点和边组成,用于表示对象之间的复杂关系。...

    java数据结构源码

    Java的`java.util.TreeSet`和`java.util.TreeMap`基于红黑树实现。 7. 图:图是由节点和边构成的数据结构,用于表示对象之间的关系。Java标准库并未提供直接的图实现,但可以通过自定义类或使用第三方库来实现。 8...

    use Java, learn about Data Structures of Java.zip

    Java提供了多种队列实现,如LinkedList实现的Queue接口,以及PriorityQueue,用于优先级排序。 5. **堆(Heap)**:堆是一种特殊的树形数据结构,通常用于实现优先队列。Java中的PriorityQueue类就是基于二叉堆实现...

    java数据结构

    Java的`java.util.TreeMap`和`java.util.TreeSet`实现了红黑树。 9. **图**:图数据结构用于表示对象之间的关系,如网络、社交网络等。Java没有内置的图数据结构,但可以通过自定义节点和边类来实现。 10. **排序...

    Java超详细!Java实现数据结构PPT课件

    复杂度 时间复杂度 空间复杂度 ...集合(TreeSet)、映射(TreeMap) 哈夫曼树 Trie 线性+树形数据结构 集合(HashSet) 映射(HashMap、LinkedHashMap) 二叉堆(BinaryHeap) 优先级队列(PriorityQueue)

    Java集合知识图谱 ,包含map,list,set

    “2.4 Java集合类图.jpg”可能包含了以上所有接口和类的综合视图,同时可能还包括了一些高级主题,如Queue、Deque、PriorityQueue等。 理解Java集合框架的关键在于掌握每个接口的特点和其实现类的性能特征。在实际...

    java集合,java集合

    以上只是Java集合框架的一部分核心概念,实际开发中还有许多其他类和接口,如Deque(双端队列)、NavigableSet(可导航的集合)等,都为开发者提供了丰富的选择和强大的功能。理解和熟练使用Java集合框架,是成为一...

    Java集合类层次结构

    6. Deque接口:Deque(双端队列)接口扩展了Queue,支持在两端进行插入和移除操作。ArrayDeque和LinkedList都可以实现Deque接口。 Java集合类层次结构还包含了一些其他接口,如Iterable、Iterator、Comparable和...

    最最适用的java数据结构全集

    在Java中,`TreeSet`和`TreeMap`使用红黑树,它保证了插入和查找的O(log n)时间复杂度。 12. **排序(Sorting)**:Java提供了多种排序算法,如`Arrays.sort()`和`Collections.sort()`,它们内部使用了快速排序、...

    java语言部分集合宝典

    Java集合还提供了许多实用类,如ArrayList、LinkedList、HashSet、TreeSet的实现类,以及Queue(队列)和Deque(双端队列)的实现如ArrayDeque。PriorityQueue是一个优先队列,可以根据元素的自然顺序或自定义比较器...

    ItcastOA04_itcastoa_

    5. **Queue与PriorityQueue**:Queue接口表示一个先进先出(FIFO)的队列,PriorityQueue则是一个优先级队列,元素根据其自然顺序或自定义比较器排序。 6. **Collections工具类**:提供了许多静态方法,用于操作...

    各种类型的collection结构java 实现

    Java提供了 `java.util.Queue` 接口,其子接口如 `Deque` 提供了更多的功能。`LinkedList` 可以用作队列,而 `PriorityQueue` 则允许根据元素的优先级进行排序。 3. **列表(List)**: 列表是一种有序的数据结构...

    j2se集合课件是java的基础课程章节之一

    Java集合框架还包含了Queue(队列)、Deque(双端队列)、Stack(栈)等接口和实现,例如LinkedList可以作为双端队列使用,ArrayDeque作为高效栈和队列,PriorityQueue实现了优先队列,能根据元素的优先级进行出队。...

    java.util包

    6. Queue接口和实现类:Queue接口表示先进先出(FIFO)的数据结构,常用的实现有LinkedList(Deque接口的实现)、ArrayBlockingQueue(线程安全的队列)和PriorityQueue(优先级队列)。 7. Date和Calendar类:Date...

Global site tag (gtag.js) - Google Analytics