java collection是什么?java中collection是什么怎么理解怎么使用
各位老铁们,大家好,今天由我来为大家分享java collection是什么,以及java中collection是什么怎么理解怎么使用的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
java中collection是什么怎么理解怎么使用
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│└Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection接口
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。
所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。
如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
Iterator it= collection.iterator();//获得一个迭代子
while(it.hasNext()){
Object obj= it.next();//得到下一个元素
}
由Collection接口派生的两个接口是List和Set。
List接口
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。
和下面要提到的Set不同,List允许有相同的元素。
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。
实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
LinkedList类
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list= Collections.synchronizedList(new LinkedList(...));
ArrayList类
ArrayList实现了可变大小的数组。
它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
和LinkedList一样,ArrayList也是非同步的(unsynchronized)。
java中Collection与Collections的区别
Collection与Collections的根本区别是:
1、Collection是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
2、Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
Collections是一个包装类,Collection表示一组对象,这些对象也称为 collection的元素。一些 collection允许有重复的元素,而另一些则不允许,一些 collection是有序的,而另一些则是无序的。
扩展资料:
所有通用的 Collection实现类(通常通过它的一个子接口间接实现 Collection)应该提供两个“标准”构造方法:一个是 void(无参数)构造方法,用于创建空 collection;
另一个是带有 Collection类型单参数的构造方法,用于创建一个具有与其参数相同元素新的 collection。
实际上,后者允许用户复制任何 collection,以生成所需实现类型的一个等效 collection。尽管无法强制执行此约定(因为接口不能包含构造方法),但是 Java平台库中所有通用的 Collection实现都遵从它。
此接口中包含的“破坏性”方法,是指可修改其所操作的 collection的那些方法,如果此 collection不支持该操作,则指定这些方法抛出 UnsupportedOperationException。
如果是这样,那么在调用对该 collection无效时,这些方法可能,
但并不一定抛出 UnsupportedOperationException。例如,如果要添加的 collection为空且不可修改,则对该 collection调用 addAll(Collection)方法时,可能但并不一定抛出异常。
参考资料:百度百科- Collection
百芳百科-Java
Java中Collection和Collections的区别
1、java.util.Collection是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│└Stack
└Set
2、Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
1)排序(Sort)
使用sort方法可以根据元素的自然顺序对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable接口。此列表内的所有元素都必须是使用指定比较器可相互比较的
List<Integer> list= new ArrayList<Integer>();
int array[]={112, 111, 23, 456, 231};
for(int i= 0; i< array.length; i++){
list.add(array[i]);
}
Collections.sort(list);
for(int i= 0; i< array.length; i++){
System.out.println(list.get(i));
}
结果:23 111 112 231 456
2)混排(Shuffling)
混排算法所做的正好与 sort相反:它打乱在一个 List中可能有的任何排列的踪迹。也就是说,基于随机源的输入重排该 List,这样的排列具有相同的可能性(假设随机源是公正的)。这个算法在实现一个碰运气的游戏中是非常有用的。例如,它可被用来混排代表一副牌的 Card对象的一个 List。另外,在生成测试案例时,它也是十分有用的。
Collections.Shuffling(list)
3)反转(Reverse)
使用Reverse方法可以根据元素的自然顺序对指定列表按降序进行排序。
Collections.reverse(list)
4)替换所以的元素(Fill)
使用指定元素替换指定列表中的所有元素。
Collections.fill(li,"aaa");
5)拷贝(Copy)
用两个参数,一个目标 List和一个源 List,将源的元素拷贝到目标,并覆盖它的内容。目标 List至少与源一样长。如果它更长,则在目标 List中的剩余元素不受影响。
Collections.copy(list,li):后面一个参数是目标列表,前一个是源列表
6)返回Collections中最小元素(min)
根据指定比较器产生的顺序,返回给定 collection的最小元素。collection中的所有元素都必须是通过指定比较器可相互比较的
Collections.min(list)
7)返回Collections中最小元素(max)
根据指定比较器产生的顺序,返回给定 collection的最大元素。collection中的所有元素都必须是通过指定比较器可相互比较的
Collections.max(list)
8) lastIndexOfSubList
返回指定源列表中最后一次出现指定目标列表的起始位置
int count= Collections.lastIndexOfSubList(list,li);
9) IndexOfSubList
返回指定源列表中第一次出现指定目标列表的起始位置
int count= Collections.indexOfSubList(list,li);
10) Rotate
根据指定的距离循环移动指定列表中的元素
Collections.rotate(list,-1);
如果是负数,则正向移动,正数则方向移动
java collection是什么的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中collection是什么怎么理解怎么使用、java collection是什么的信息别忘了在本站进行查找哦。