1、List:有序的collection(也称为序列)。此接口可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的在列表中的位置访问元素,并搜索列表中的元素。列表允许重复的元素。 ArrayList: 特点:有序的、线性的、无固定大小的、有下标的、先进先出。2.Set:是简单的集合,它的对象不按特定方式排序,只是简单的把对象加入集合中。不能有重复对象。 HashSet: 特点:无序的,长度可变的,不可重复的。3.Map:Map中存入的对象是一对一对的,即每个对象和它的一个名字(键:key)关联在一起,一个键(key)只能对应一个值(value),反则不然。 HashMap: 特点:无序的、不可重复的。

其实严格来说,迭代是一种设计模式,迭代的目的是遍历某一类数据集合的内容,而无需了解该类数据的数据结构。
也就是说,迭代本没有编程语言属性,只不过几乎所有的编程语言都会支持迭代罢了。
在Java中遍历集合可以不用迭代方式,当然,不用迭代方式的遍历仅限于List接口的实现类。因为List接口规定可以通过集合索引来取得对应的值,不论这个List用的是数组还是链表实现。
但是,Java中的集合不仅仅只有List,还有Set。像这种非List集合是无法通过索引来获取指定元素的,所以这时候迭代方式就排上了用场。
除了List和Set之外,Java还有一种双列集合,又称key-value键值对集合。只不过这种集合遍历时无法直接通过迭代方式遍历。而是通过折中方式,要么先获得key值集合,通过遍历key来遍历map,要么是获得Map.Entry的集合来遍历。
总之,迭代方式不属于任何编程语言,它只是一种设计思想,只不过大多数编程语言会去实现它罢了,包括Java。
迭代可以遍历并选择集合中的每个对象而不改变集合的结构,比如你访问集合的时候用集合自带的remove()方法去除集合的元素,这样会是使集合的Size()改变,循环的时候会出错;而把集合放入迭代器,用迭代器的remove()就不会出现问题
list集合的removeAll用来删除当前集合中包含的另一集合的元素,如果当前集合有元素和另一集合重复,则删除当前集合在另一集合中的元素。
举个例子可能简单明了一些。
在Java语言中,块语句也称复合语句,是用(花括号{})括起来的语句集合
访问当前对象中的成员可以使用关键字(this)作为前缀
this是指当前对象自己。 当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。当你要把自己作为参数传递给别的对象时,也可以用this。