黑马程序员_集合

来源:互联网 发布:广告联盟 异步加载js 编辑:程序博客网 时间:2024/05/18 15:04

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

1、集合

由于我们使用的是面对对象语言,所以,我们要经常使用对象,而很多时候,我们可能需要使用很多对象,这个时候,我们就只能使用之前的数组进行存储,而数组的特点是长度固定,不适合变化的数据,所以java重新提供了一种容器,用于存储对象,这种容器叫集合。

2、集合的特点:

长度是可以发生改变的。集合只能存储对象

3、集合和数组的区别:

数组:长度固定,可以存储基本类型数据,也可以存储引用类型,存储的数据类型一致

集合:长度可变,只能存储引用类型,可以存储不同类型的对象‘

由于数据结构(数据的组织存储方式)的不同,java给我们提供了很多种集合类,供我们使用

4、Collection:

功能:添加功能:boolean add(Object obj):向集合中添加一个元素

boolean addAll(Collection c):向集合中添加一个集合的元素

删除功能:void clear():删除集合中的所有元素

boolean remove(Object obj):从集合中删除指定的元素

boolean removeAll(Collection c):从集合中删除一个指定的集合元素

判断功能:

boolean isEmpty():判断集合是否为空

boolean contains(Object obj):判断集合中是否存在指定的元素

boolean containsAll(Collection c):判断集合中是否存在指定的一个集合中的元素

遍历功能:Iterator iterator():就是用来获取集合中每一个元素

长度长度:int size():获取集合中的每一个元素个数

交集功能:boolean retainAll(Collection c):判断两个集合中是否有相同的元素

把集合转换成数组:Object [ ] toArray():把集合变成数组

在向集合中添加元素的时候,集合默认接受的是Object类型,也就是说开始存储字符串的时候,其实做了一个向上转型的操作,在获取元素的时候,默认还是以Object类型的返回,但是如果想要使用String类型的特殊功能,就必须向下转型

Iterator iterator():就是用来获取集合中的每一个元素

成员方法:Object next():获取元素,并自动移动到下一个位置等待获取

boolean hasNext():判断迭代器中是否还有元素

List特有功能:添加功能:void add(int index,Object obj):在指定位置添加元素

删除功能:Object remove(int index):根据指定索引删除元素,并把删除的元素返回

修改功能:Object set(int index,Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值

获取功能:int indexOf(Object o):返回指定元素在集合中第一次出现的索引

ListIterator listIterator():列表迭代器

截取功能:List subList(int fromIndex,int toIndex):截取集合

ListIterator listIterator():列表迭代器

学习中遇到的ConcurrentModificationException:并发修改异常。当我们通过迭代器迭代元素的过程中,又通过集合区添加了元素,这种情况是不允许的因为迭代器是依赖于集合存在的,如果集合发生改变,迭代器也应该相应的发生改变。而我们目前看到的确实,迭代器没变,集合变了。所以,报出了一个并发修改异常。

注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作的。

5、Collection和Collections的区别?

Collection:是Collection集合的顶层接口,定义了Collection集合的共性方法。

Collections:是一个类,定义了针对Collection集合操作的功能。有排序,查找,反转等。

Collections的功能:

排序:public static void sort(List list)

二分查找:public static <T> int binarySearch(List list,T key)

反转:public static void reverse(List list)

最大值:public static  T max(Collection coll)

随机置换:public static void shuffle(List list)

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------












0 0
原创粉丝点击