java容器类的操作总结

本文介绍了Java中的各种容器类,包括List、Set、Queue等的基本使用方法及特点。详细讲解了ArrayList与LinkedList的区别,以及HashSet、TreeSet和LinkedHashSet的使用场景。此外,还介绍了Map接口及其实现类HashMap、TreeMap和LinkedHashMap。

java容器类,通过使用泛型,就可以指定容器中存放的对象类型,并且从容器中获取元素时,不需要进行类型转换。当向容器中添加更多元素时,可以自动扩容。而数组一旦生成,数组的容量就不能改变

Collection 添加元素

Collection<Integer> collection=new ArrayList<Integer>();
Collections.addAll(collection, 4,5,6);//后面接受一个数组,这个方法快

collection.addAll(Arrays.asList(4,5,6));
collection.remove(Object or index); 调用一次方法只能删除第一个

List:可修改的序列

List在指定位置添加元素 list.add(index,value)
remove
contains() 是否包含指定元素
indexof 获取元素在序列中的位置编号

一. Collection
是描述所有序列容器的共性的根接口
1,List
ArrayList 常用于随机访问元素,但是在list中插入和移除元素时较慢
LinkedList 通过代价较低的在list中间进行插入和删除操作,提供了优化的顺序访问,但在随机访问方面较慢,特性集较ArrayList更大
都按照插入数据保存元素,但是性能不同
2,Set
HashSet 无序,但是是获取元素最快的方式
TreeSet 按照比较结果的升序保存对象
LinkedHashSet 按照添加的顺序保存
3,Queue

Collection的子类都具有迭代器功能,实现了不重写代码就可以应用与不同类型的容器
1.Iterator 只能单向移动 不能指向指定元素
    (1)next() 获取(指向)序列的下一个元素
    (2)hasNext()检查序列中是否还有元素
    (3)remove()将迭代器新近返回的元素删除
 2.ListIterator 可以双向移动
     list.listIterator(index) 直接指向指定位置的元素
     (1)next()下一个 previous()前一个
     (2)hasNext() hasPrevious()
     (3)set(value) 将迭代器新近返回的元素替换

1.1 LinkedList
LinkedList 相对于ArrayList添加了使其作为栈(先进后出)、队列(先进先出)、双端队列的方法
获取列表的头(第一个元素):

    getFirst()element()、数据为空时报错 peek()数据为空时返回null

先返回列表的头,然后删除该元素

remove()removeFirst()、数据为空时报错 poll()为空时返回null

将元素插入到列表的尾部

addFirst() add() addLast() 在Queue队列实现中 offer()将元素插入到队尾

1.1.2 Stack
任何对Stack的引用,都使用net.mindview.util版本

1.1.3 Set
不保存相同的元素,Set与Collection完全相同的接口,没有额外的功能。只是行为不同。
HashSet 由于查询速度的原因,使用了散列
TreeSet 将数据存储与红黑树结构中 TreeSet构造器中可以接受参数,给定排序方式

1.3 PriorityQueue
插入的对象会在队列中排序,当调用方法时,会获取相应优先级的元素
可以通过Comparator来改变排序规则

4,Map

HashMap 最快的查找技术
TreeMap 按照比较结果升序保存键
LinkedHashMap 按照插入顺序保存键,还保留了hashmap的查询速度
其中map.values()返回的是Collection 集合,可以使用迭代器
方法:put()
get()
Set<> keySet() 返回所有的键
Collection<V> values(); 返回所有的值;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值