黑马程序员-java集合框架2
来源:互联网 发布:港股股票为啥50万 知乎 编辑:程序博客网 时间:2024/06/03 02:26
------- android培训、java培训、期待与您交流! ----------
List接口
List接口是Collection子接口;List是有序的集合,集合中的每个元素都有对应的顺序序列。List集合可使用重复元素,通过索引来访问指定位置的集合元素(顺序索引从0开始),List集合默认按元素的添加顺序设置元素的索引,比如第一个元素的索引就是0,好似数组。
List作为Collection子接口当然拥有其所有方法,同时也有自己的方法:
增:void add(int index,E e);将元素e添加到List集合中的index处;
boolean addAll(int index,Collection c)
删:E remove(int index)
改:E set(int index,E e)用指定的元素替代此列表中指定位置上的元素 返回:以前位于该指定位置上的元素
查:E get(int index)
int indexOf(Object o)
int lastIndexOf(Object o)
List<E> subList(int formIndex,int toIndex)
ListIterator
Iterator的子接口,专门用于操作List集合的输出;
List自己还有一个listIterator()方法,该方法返回ListIterator对象,ListIterator继承了Iterator接口,提供了专门操作List的方法。
在Iterator上额外增加的方法:
支持双向输出:
boolean hasPrevious():返回该迭代器关联集合是否还有伤一个元素;
Object previtous():返回该迭代器的上一个元素;
List接口中常用类:
Vector:线程安全,但速度慢,已被ArrayList替代
ArrayList:线程安全,查询速度快。
LinkedList:链表结构,增删速度快。取出List集合中元素的方式:
get(int index):通过脚标获取元素。
iterator():通过迭代方法获取迭代器对象。
ArrayList和Vector类都是基于数组实现的List类,Vector比较古老,被ArrayList取代了
{ArrsyList是线程不安全的,而Vector是线程安全的,但是即使这样,也不推荐使用Vector,因为Collections有方法可以得到线程安全的ArrayList对象;collections类:static List synchronizedList(List list)返回指定列表支持的(线程安全的)同步列表。}
Queqe接口
继承Collection接口
模拟队列:先进先出
void add(Object e):将e插入到队列尾部
E element()获取队列头部的元素
boolean offer(E e)将e插入到队列的尾部,当使用有容量限制的队列时,此方法比add(E e)方法更好
E peek():获取队列头部的元素。如果此双端队列为空,则返回null
E poll():获取并删除队列头部的元素。如果此双端队列为空,则返回null。
E remove():获取并删除队列头部的元素。
LinkedList
LinkedList实现了Deque接口,而Deque是Queue的子接口
Deque自定义方法:
void addFirst(E e)把元素插入到该双向队列的开头;
void addLast(E e)把该元素插入到该双向队列的末尾;
E getFirst():获取但不删除队列第一个元素
E getLast():获取但不删除队列最后一个元素
boolean offerFirst(E e)将指定的元素插入到该双向队列的开头
boolean offerLast(E e)将指定元素插入到双向队列的末尾
E removeFirst() 删除第一个元素
E removeLast()删除最后一个元素
E peekFirst()获取但不删除队列第一个元素,如果队列为null,返回null
E peekLast()获取但不删除队列最后一个元素,如队列为null,返回null
E pollFirst()获取并删除队列第一个元素,如队列为null,返回null
E pollLast()获取并删除队列最后一个元素,如队列为null,返回null
Map 映射关系,也有人称为字典,Map集合里存在两组值,一组是key,一组是value。Map里的key不允许重复。通过key总能找到唯一的value与之对应。
Map里的key集存储方式和对应的Set集合中的元素存储方式一致
Map.Entry是Map接口的内部接口,专门用来保存key-value内容
K getKey();返回Entry里包含的key值
V getValue();返回Entry里包含的value值
V setValue(V value)设置Entry里包含的Value值,并返回新设置的value值;
Map集合的输出
Map集合本身不能直接为Iterator实例化
方法一:1.通过entrySet方法变成Set对象
2.通过调用Set的Iterator方法,此时每个Iterator对象是Map.Entry对象
3.对Map.Entry分离出key-value
方法二:1.通过Map集合方法keySet得到key的Set集合
2.调用Set的Iterator方法,此时每个Iterator对象迭代出的是key值
3.通过Map的get(Object key)得到value值
Map集合常用类:
Hashtable:线程安全,速度,不允许存放null键,null值,已被HashMap替代,无序存放。
HashMap:线程不安全,速度快,允许存放null键,null值。类中的key都属于无序存放的,底层数据结构是哈希表数据结构。
HashMap线程不安全,在多线程中也推荐使用,可以通过collections类中
public static Map synchronizedMap(Map m)来返回线程同步的映射.
TreeMap:对key进行排序,底层数据结构是二叉树,key不能为null,value可以是null
TreeMap对key的排序方式:
1.自然排序
2.比较器
TreeMap判断两个key元素是否相等标准:
compareTo方法或compare方法返回;
- 黑马程序员-java集合框架2
- “黑马程序员”Java集合框架(2)
- 黑马程序员--Java集合框架(2)
- 黑马程序员--java集合框架
- 黑马程序员 Java集合框架
- 黑马程序员 java 集合框架
- 黑马程序员 Java集合框架
- 黑马程序员--Java集合框架
- 黑马程序员--Java集合框架
- 黑马程序员-java集合框架
- 黑马程序员---Java集合框架
- 黑马程序员-Java集合框架
- 黑马程序员-java 集合框架
- 黑马程序员----java集合框架
- 黑马程序员-----java集合框架
- 黑马程序员-Java集合框架
- 黑马程序员-集合框架2
- 黑马程序员--Java基础之集合框架(2)
- 2013:蟠桃记
- mfc 学习笔记之单选控件出错原因之一
- Eclipse配置Tomcat
- POJ 1704 Georgia and Bob
- Asteroids!
- 黑马程序员-java集合框架2
- linux udp broadcast封装函数
- Web 开发最有用的50款 jQuery 插件集锦——《内容滑块篇》
- apt
- N后问题
- VFS的索引节点
- 巧取Oracle指定记录
- POJ 1026 Cipher
- NodeJs-- 新建项目实例