Java集合介绍2
来源:互联网 发布:淘宝小白是什么意思啊 编辑:程序博客网 时间:2024/05/20 10:22
3、List接口
4、Queue接口
Queue用于模拟了队列这种数据结构,队列通常是指“先进先出”(FIFO)的容器。队列的头部保存在队列中时间最长的元素,队列的尾部保存在队列中时间最短的元素。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素.通常,队列不允许随机访问队列中的元素。
Queue接口中定义了如下几个方法:
》void add(Object e):将指定元素加入此队列的尾部。
》Objeot element():获取队列头部的元素,但是不删除该元素。
》boolean Offer(Object e):将指定元素加入此队列的尾部。当使用有容量限制的队列时,此方法通常比add(Object e)方法更好。
》Object peek():获取队列头部的元素,但是不删除该元素。如果此队列为空,则返回null。
》Object poll():获取队列头部的元素,并删除该元素。如果此队列为空,则返回null。
》Object remove():获取队列头部的元素,并删除该元素。
Queue有两个常用的实现类:LinkedList和PriorityQueue,LinkedList功能比较强大,它是一个双向队列,而且可以当成“栈”来使用,因为该类里包含了pop(出栈)和push(入栈)两个方法,除此之外还可以从图中看出它还实现了List接口,所以还可以当成List使用。但是因为LinkedList的实现机制不同于ArrayList和Vector,它内部以列表的形式来保存集合中的元素,因此在随机访问集合元素时性能较差,不过插入、删除元素时性能非常好(只改变指针所指的地址即可),实际上Vector因为实现了同步功能,所以性能上也落后于ArrayList,所以我们更多的使用的是ArrayList实现类。我们一般在有特殊要求的时候再去考虑使用LinkedList。至于PriorityQueue是一个比较标准的队列实现类,它对元素的要求与前面TreeSet要求基本一致,这里就不多解释了。
5、Map接口
6、操作集合工具类:Collections
Java提供了一个操作set、List和Map等集合的工具类:collections,该工具类里提供了大量方法
对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步
控制等方法,这样就弥补了HashMap、ArrayList等不能同步的缺陷。
排序操作——Collections提供了如下几个方法用于对List集合元素进行排序:
》static void reverse(List Iist):反转指定List集合中元素的顺序。
》static void shuffle(List list):对List集合元素进行随机排序(shuffle方法模拟了“洗牌”动作)。
》static void sort(List list):根据元素的自然顺序对指定List集合的元素按升序进行排序。
》static void sort(List Iist, Comparator c):根据指定Comparator产生的顺序对List集合的元素进行排序。
》static void swap(List list, int i, int j):将指定List集合中 i 处元素和 j 处元素进行交换.
》static void rotate(List Iist ,int distance):将指定集合中i处元素和list.length一1 -i处的元素进行交换。
查找,替换操作——Collections还提供了如下用于查找、替换集合元素的常用方法:
》static int binarySearch(List list, Object key):使用二分搜索法搜索指定List集合,以获得指定对象在List集合中的索引。如果要该方法可以正常工作,必须保证List中的元素己经处于有序状态。
》static Object max(Collection coll):根据元素的自然顺序,返回给定集合中的最大元素。
》static Object max(Collection coll, Comparator comp):根据指定Comparator产生的顺序,返回给定集合的最大元素。
》static Object min(ColIection coll):根据元素的自然顺序,返回给定集合中的最小元素.
》static Object min(Collection coll, Comparator comp):根据指定Comparator产生的顺序,返回给定集合的最小元素。
》static void fill(List Iist, Object obj):使用指定元素obj替换指定List集合中的所有元素。
》static int frequency(Collection c, object o):返回指定集合中等于指定对象的元素数量。
》stetic int indexOfSubList(List source, List target):返回子List对象在母List对象中第一次出现的位置索引;如果母Liat中没有出现这样的子List,则返回-1。
》stetic int IastlndexOfSubList(List source,List target):返回子List对象在母List对象中最后一次出现的位置索引:如果母List中没有出现这样的子Liat,则返回-1。
》static boolean replaceAll(List Iist, Object oldVal, Object newVal):使用一个新值newVal替换List对象所有的旧值oldVal。
同步控制:
Collections类中提供了多个synchronizedXxx方法,该方法返回指定集合对象对应的同步对象,从而可以解决多线程并发访问集合时的线程安全问题。如下面的练习:
public class TestSynchronized{public static void main(String[] args){//下面程序创建了四个同步的集合对象Collection C = Collections.synchronizedCollection(new ArrayList());List list = Collections.synchronizedList(new ArrayList());Set s = Collections.synchronizedSet(new Hashset());Map m = Collections.synchronlzedMap(new HashMap());}}
设置不可变集合——Collections提供了如下三类方法来返回一个不可变的集合:
》emptyXxx():返回一个空的、不可变的集合对象,此处的集合既可以是List,也可以是Set,还可是Map。
》SingletonXxX():返回一个只包含指定对象(只有一个或一项元素)的、不可变的集合对象,此处的集合既可以是List,也可以是Set,还可以是Map。
》unmodifiableXxx:返回指定集合对象的不可变视图。此处的集合既可以是List,也可以是Set,还可以是Map。
到此java集合就算基本介绍完了,更加深入的我们会参考API文档即可...
- Java集合介绍2
- 【集合】Java集合框架介绍
- JAVA集合类(介绍)
- Java集合Collection介绍
- Java集合介绍1
- java集合类介绍
- java 集合介绍
- Java集合Collection介绍
- JAVA集合类介绍
- Java集合介绍
- Java集合-ArrayList介绍
- java集合框架介绍
- java集合框架介绍
- Java集合简单介绍
- Java集合 介绍一
- Java集合 介绍二
- java集合介绍
- Java集合框架介绍
- GTK+简介
- GCC/LD编译链接潜规则 (第三弹) : 当项目库中包含多个同名的头文件时.
- 关于android Listview 使用时遇到的几个问题
- android(17)_数据存储与访问_SQLite数据库_修改数据库
- 基于邻接矩阵存储的图的最短路径问题(Dijkstra算法)
- Java集合介绍2
- GCC/LD编译链接潜规则 (第四弹) : ld 会把所有通过-l指定的动态库全部链接进最终的目标程序中, 无论是否真的用到(导致生产环境加载失败)
- android OTA 的功能实现和修改
- Android网络编程之Socket&Http
- CentOS 6.3下Samba服务器的安装与配置
- c# 控制IE浏览器
- Overriding toString(), hashCode() and equals() Methods
- java中String的常用方法
- 手机交互设计原则