这节课程比较长,分了一个星期才上完
集合有List、Set、Map,集合就像一种容器,可以把多个对象的引用,但习惯上都称对象“丢进”该容器中。
1、 List代表有序、可重复的集合
2、 Set代表无序、不可重复的集合,只能存储一个
3、 Map则代表具有映射关系(键和值)的集合,键是不可重复的
集合和数组的区别:
1、 数组的长度必须在初始化时指定,而集合是在添加元素时会自动扩展长度,可以理解为动态的
2、 数组可以保存基本类型,也可以保存对象,而集合只可以保存对象的引用类型,基本类型的变量要转成对应的包装类,才可以放进集合
泛型: 1、获取元素时候,不需要在强转
2、根据1就可以避免转换的失败
List和Set都是Collection的子接口,所以拥有的方法基本一致
迭代器Iterator:主要用来遍历集合的元素,可以理解为for循环遍历数组里面的元素
1、 hasNext()判断下个元素是否存在,返回一个boolen类型
2、 next()返回迭代的下一个元素
遇到一些不理解的地方:百度得到答案
ArrayList和LinkedList的大致区别如下:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
sublist使用注意事项:
它返回原来list的从[fromIndex,toIndex)之间这一部分的视图,之所以说是视图,是
因为实际上,返回的list是靠原来的list支持的。所以,你对原来的list和返回的list
做的“非结构性修改”,都会影响到彼此对方。所谓的“非结构性修改”,是指不涉及到list
的大小改变的修改。相反,结构性修改,指改变了list大小的修改。
将list集合中部分元素替换成指定元素:
用list.set(index, element);方法,将下标为index的元素替换为element
复制代码