Java集合框架(list,Queue)
List和Queue都继承自Collection接口
list常规用法
List判断两个对象相等的标准:equals方法返回true
class A2 { public boolean equals(Object obj) { return true; } } public class ListTest2 { public static void main(String[] args) { List books = new ArrayList(); books.add(new String("一")); books.add(new String("二")); books.add(new String("三")); System.out.println(books); //[一, 二, 三] //调用A2对象的equals方法,只要equals方法返回true就视为相等,所以去掉了第一个元素 books.remove(new A2()); System.out.println(books);//[二, 三] books.remove(new A2()); System.out.println(books);//[三] } }
ListIterator()方法
public class ListIteratorTest { public static void main(String[] args) { List bookList = new ArrayList(); bookList.add("111111"); bookList.add("222222"); ListIterator lit = bookList.listIterator(); while (lit.hasNext()) { System.out.println(lit.next()); } System.out.println("=======下面开始反向迭代======="); while(lit.hasPrevious()) { System.out.println(lit.previous()); } } }
Queue集合
PriorityQueue实现类
public class PriorityQueueTest { public static void main(String[] args) { PriorityQueue pq = new PriorityQueue(); //下面代码依次向pq中加入四个元素 pq.offer(6); pq.offer(-3); pq.offer(9); pq.offer(0); //输出pq队列,并不是按元素的加入顺序排列, //而是按元素的大小顺序排列,输出[-3, 0, 9, 6] System.out.println(pq); //访问队列第一个元素,其实就是队列中最小的元素:-3 System.out.println(pq.poll()); } }
此优先队列不允许插入null值,有两种排序方式,与TreeSet类似
Deque与ArrayDeque
ArrayDeque作为栈来使用
public class ArrayDequeTest { public static void main(String[] args) { ArrayDeque stack = new ArrayDeque(); //依次将三个元素push入"栈" stack.push("java"); stack.push("C++"); stack.push("C#"); System.out.println(stack);//[C#, C++, java] System.out.println(stack.peek());//C# System.out.println(stack);//[C#, C++, java] System.out.println(stack.pop());//C# System.out.println(stack);//[C++, java] } }
作为队列来使用
public static void main(String[] args) { ArrayDeque queue = new ArrayDeque(); //依次将三个元素push入"栈" queue.offer("java"); queue.offer("C++"); queue.offer("C#"); System.out.println(queue);//[java, C++, C#] System.out.println(queue.peek());//java System.out.println(queue);//[java, C++, C#] System.out.println(queue.poll());//java System.out.println(queue);//[C++, C#] }
LinkedList实现了Deque接口,因此可以实现栈,队列的功能,不再举例
Java集合框架(list,Queue)的更多相关文章
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- Java集合框架练习-计算表达式的值
最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...
- Java 集合框架
Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...
- Java集合框架的总结
本篇文章先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析.当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进 ...
- 《深入理解Java集合框架》系列文章
Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framewo ...
- Java集合框架中List接口的简单使用
Java集合框架可以简单的理解为一种放置对象的容器,和数学中的集合概念类似,Java中的集合可以存放一系列对象的引用,也可以看做是数组的提升,Java集合类是一种工具类,只有相同类型的对象引用才可以放 ...
- 【Java集合框架】规则集--Set
集合: Java主要支持三种: 1.规则集(Set) 用于存储一组不重复的元素 2.线性表(List) 用于存储一个由元素构成的有序集合 3.队列(Queue) 同与数据结构中的队列,存储用先进先出的 ...
- java集合框架1
1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...
- Java集合框架的知识总结(1)
说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析. 1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象 ...
- 【转】Java集合框架List,Map,Set等全面介绍
原文网址:http://android.blog.51cto.com/268543/400557 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含 ...
随机推荐
- nginx upstream 名称下划线问题
原始配置: user nobody;worker_processes 1; #pid logs/nginx.pid; worker_connections 1024;} http ...
- Oracle数据库拼音首字母模糊搜索
1.建立函数 CREATE OR REPLACE FUNCTION F_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE ); V_RET ...
- 0917 词法分析程序(java版)
1.运行结果: 2.源代码: package 词法分析;import java.util.Scanner;public class fenxi {public static void main(Str ...
- 王者荣耀交流协会第一次Scrum立会
工作照片: scrum master:高远博 时间跨度;2017/10/13 6:04-6:34 地点:一食堂二楼两张桌子旁 立会内容; 昨天的成绩;昨天商议了今天的开会的时间.地点 今天的计划;讨论 ...
- <浪潮之巅>读书笔记
<浪潮之巅>这本书通过介绍AT&T.IBM.微软.苹果.google等IT公司的发展历史,揭示科技工业的胜败规律,说明这些公司是如何在每一次科技革命浪潮到来时站在浪尖,实现跨越式发 ...
- EF动态排序
转载的代码,改天再研究 public PageData<T> FindAll(int PageIndex, int PageSize, Expression<Func<T, b ...
- Struts2(五)
以下内容是基于导入struts2-2.3.32.jar包来讲的 1.文件上传 A.单文件上传 <body> <form action="${pageContext.requ ...
- 第八次java笔记
- Kafka Shell基本命令
创建kafka topic bin/kafka-topics.sh --zookeeper node01:2181 --create --topic t_cdr --partitions 30 --r ...
- sublime插件时间
import datetime import sublime_plugin class AddCurrentTimeCommand(sublime_plugin.TextCommand): def r ...