java容器类的操作总结

来源:互联网 发布:修改游戏的软件 编辑:程序博客网 时间:2024/06/03 21:43

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)removecontains() 是否包含指定元素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(); 返回所有的值;
原创粉丝点击