黑马程序员_集合
来源:互联网 发布:广告联盟 异步加载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>、期待与您交流! ----------------------
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 入门训练 圆的面积
- 入门训练 Fibonacci数列
- HDU-3038 How Many Answers Are Wrong
- JLINK下载uboot.bin到Nor flash
- linux deepin配置adb
- 黑马程序员_集合
- 黑马程序员-集合与泛型集合
- java调用windows系统的批处理(.bat文件) 和 linux系统的shell脚本(.sh文件)
- sqlserver数据库备份与还原语句
- 如何在oracle中导入导出dmp文件[转]
- d3学习之(Data Visualization with d3.js Cookbook )一
- Java_创建ServerSocket对象
- 使用反射机制深入理解AOP机制并自定义AOP管理模块
- Android WebView的加载超时处理