集合 LinkedList、ArrayList、Set、Treeset
LinkedList中特有的方法:
1:方法介绍
addFirst(E e)
addLast(E e)
getFirst()
getLast()
removeFirst()
removeLast()
如果集合中没有元素,获取或者删除元
素抛:NoSuchElementException : 没有找到元素的异常
2:数据结构 : 可用来描述栈结构存储数据
1:栈 (1.6)
先进后出 :栈的结构
push()
pop()
2:队列(双端队列1.5)
先进先出
offer()
poll()
3:返回逆序的迭代器对象
descendingIterator() 返回逆序的迭代器对象
Vector :用来描述线程安全的ArrayList 和ArrayList 的使用一样 只是线程更安全一些
Vector 和Arrays 的区别
相同点:vector 和ArrayList底层 都是通过Object数组来实现的
不同点:
- ArrayList 线程不同步 操作效率高
Vector 线程是同步的 操作效率低
- ArrayList 是在jdk1.2 出现的,vector 是在jdk1.0 就有了
Set集合 也是一个集合:继承Collection接口 特点:是无序的 、元素不能重复 元素不能用下标取得
TreeSet :使用元素的自然顺序对元素进行排序,底层使用二叉树实现
Treeset 使用注意点:
1.往treeSet添加对象的时候,如果对象有这个自然排序的特性,就按照这个自然排序进行排序
2.往TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,运行的时候直接报错,如果需要存储对象,那么对象的类必须要实现comparable 接口 把元素的比较的规则定义在comparato 方法中
3.往TreeSet 添加对象的时候,如果对象本身不具备自然排序的特性,并且没有实现comparable 接口 ,那么这个时候需要创建一个TreeSet的时候传入一个比较器,并且实现public int compare(Object o1, Object o2) 方法
比较器的定义方式:
class 类名 implements Compartor{
}
实现compare方法
public int compare(Object o1, Object o2) {
TODO Auto-generated method stub
o1 o2 集合中的对象 : book
//定义比较的规则。
Book b1 = (Book)o1;
Book b2 = (Book)o2;
return b1.id - b2.id;
}
4.如果类中实现了Comparable 接口 又在创建TreeSet时传入了一个比较器 ,这个时候以比较器为标准。
集合 LinkedList、ArrayList、Set、Treeset的更多相关文章
- Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- java集合之ArrayList,TreeSet和HashMap分析
java集合是一个重点和难点,如果我们刻意记住所有的用法与区别则是不太现实的,之前一直在使用相关的集合类,但是没有仔细研究区别,现在来把平时使用比较频繁的一些集合做一下分析和总结,目的就是以后在需要使 ...
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...
- 集合框架-ArrayList,Vector,Linkedlist
// ClassCastException 报错,注意,千万要搞清楚类型 * Vector的特有功能: * 1:添加功能 * public void addElement(Object obj) -- ...
- List集合与Set集合(ArrayList,LinkedList,Vector,HashSet,LinkedHashSet,可变参数)
List集合介绍及常用方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* java. ...
- JAVA之旅(十九)——ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习
JAVA之旅(十九)--ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习 关于数据结构,所讲的知识 ...
- LinkedList ArrayList 比较
小结: 1.不是同步的,多线程情况下的处理 List list = Collections.synchronizedList(new LinkedList(...)); 2. 快速失败.并发修改异常 ...
- Java基础-集合框架-ArrayList源码分析
一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList. ...
- C#语言基础——集合(ArrayList集合)
集合及特殊集合 集合的基本信息: System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...
- C#集合之ArrayList
C#中之所以有集合这个东东,是因为数组的长度是固定的,而实际需求是,不确定未来这个“数组”的个数,故出现集合这个概念,因为集合的容量会随元素的增加曾倍数增长.C#中有2类常用集合:ArrayList, ...
随机推荐
- POJ 1815 Friendship
Friendship Time Limit: 2000MS Memory Limit: 20000K Total Submissions: 10626 Accepted: 2949 Descr ...
- 真正解决vbox不能为虚拟电脑打开一个新任务的解决方法
今天小编电脑上出现了一个问题,如上图,经过了一个朋友的帮助终于问题解决了,解决方法: 在每一个中把 红框中打上勾号即可
- 将文件移出版本控制 (Revision Control)
两条重要的 Git 命令: git rm -r -n --cached /path/to/the/directory git rm -r --cached /path/to/the/directory ...
- laypage分页
1.分页 laypage({ cont:$("#page"), //容器,仅支持id名\原生DOM对象,jquery对象 pages:, //总页数 skip:true, //是否 ...
- pip 与pip3
pip 3用于python3 版本 pip2 用于python2版本 pip好像可以通用 "pip2" is for Python2, "pip3″ is for Pyt ...
- ip地址库 新浪,淘宝
原文连接地址:http://www.9958.pw/post/city_ip function getAddressFromIp($ip){ $urlTaobao = 'http://ip.taoba ...
- maven阿里云中央仓库
配置 修改maven根目录下的conf文件夹中的setting.xml文件,内容如下: <mirrors> <mirror> <id>alimaven</id ...
- 网络第一节——NSURLConnection
一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... ...
- c#生成二维码
String link ="www.baidu.com";//这里一般是一个链接 封装后的方法,直接调用就可以了 public void CreateQRCode ...
- D2js 是如何处理并发的
d2js 运行于 servlet 容器,如tomcat,由于容器自身支持并发,似乎 d2js 只要使用 nashorn 运行脚本即可.这样我们得到最简单的实现方式: 在该方式中,nashorn引擎仅存 ...