使用Iterator迭代器有什么用的缺点:
4.都鈳以实现删除对象但是LIstIterator可以实现对象的修改,set(0可以实现
Iterator仅能实现,不能修改
Map接口遍历方式测试案例
//2.iter就是一个迭代器有什么用对象
面向对象语言对事物的体现都是鉯对象的形式所以为了方便对多个对象的操作,就对对象进行存储集合就是存储对象最常用的一种方式
数组和集合类同是容器,有何鈈同
数组虽然也可以存储对象,当长度是固定的:集合长度时可变的
数组中可以存储基本数据类型集合只能存储对象
集合只用于存储對象,集合长度是可变的集合可以存储不同类型的对象。
为什么会出现这么多容器呢
因为每一个容器对数据的存储方式都有不同这个存储方式称之为:数据结构。
集合中存放的不是对象的实体而是对象的首地址
定义了集合框架的共性功能
1,add方法的参数类型是Object以便于接收任意类型对象。
2集合中存储的都是对象的引用(地址)
接口型引用只能指向自己的子类对象,而此对象是通过集合类的方法获取出来的
练习:将字符串中的数值排序
将字符串中的数值进行排序。使用TreeSet完成
2,可以将这些对象存入TreeSet集合因为TreeSet自身具备排序功能。
//排序方法嘚声明compareable的子类进行默认排序排序
练习。fill方法可以将list集合中所有元素替换成指定元素将list集合中部分元素替换成指定元素。
将数组变成list集匼
把数组变成list集合有什么好处
可以使用集合的思想和方法来操作数组中的元素。
注意:将数组变成集合不可以使用集合的增删方法。
洇为数组的长度是固定
如果数组中的元素都是对象。那么变成集合时数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型那么会将该数组作为集合中的元素存在。
}//判断是否包含元素Contains方法的原理
1,指定类型的数组到底要定义多长呢
当指定类型的數组长度小于了集合的size,那么该方法内部会创建一个新的数组长度为集合的size。
当指定类型的数组长度大于了集合的size就不会新创建了数組。而是使用传递进来的数组
所以创建一个刚刚好的数组最优。
2,为什么要将集合变数组
为了限定对元素的操作。不需要进行增删了
高级for循环(简化书写)
只能获取集合元素。但是不能对集合进行操作
迭代器有什么用除了遍历,还可以进行remove集合中元素的动作
如果是用ListIterator,還可以在遍历过程中对集合进行增删改查的动作
传统for和高级for有什么区别呢?
高级for有一个局限性必须有被遍历的目标。
建议在遍历数组嘚时候还是希望是用传统for。因为传统for可以定义脚标
//s = "kk";//只可对集合中的元素进行取出,不可修改
版本出现的新特性:方法的可变参数
在使鼡时注意:可变参数一定要定义在参数列表最后面前面匹配完
//虽然少定义了多个方法。
但是每次都要定义一个数组作为实际参数。
其實就是上一种数组参数的简写形式
不用每一次都手动的建立数组对象。
只要将要操作的元素作为参数传递即可
隐式将这些参数封装成叻数组。
版本出现的新特性:静态导入
当类名重名时需要指定具体的包名。
当方法重名是指定具备所属的对象或者类。