java------------------------集合List和迭代器Iterator

关于java的学习记录:

Day15

1.集合的由来:数组的长度是固定的,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可变的,随着元素的增加而增加,随着元素的减少而减少。

2.数组和集合的区别:

a.数组既可以存储基本数据类型,又可以粗糙农户引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值;集合只能存储引用数据类型(对象),集合也可以存储基本数据类型,但在存储的时候会自动装箱变成对象。

b.数组的长度是固定的,不能自动增长;集合的长度是可变的,可以根据元素的增长而增长

Collection包括List(有序)和Set(无序)

List包括ArrayList(数组实现),LinkedList(链表实现)和Vector(数组实现)

Set包括HashSet(哈希算法)和TreeSet(二叉树算法)

3.Collection接口的基本功能:

boolean add(E e)

boolean remove(Object o)

void clear()

boolean contains(Object o)

boolean isEmpty()

int size()

注意:collectioXxx.java使用了未经检查或不安全的操作,add方法如果是list集合一直都返回true,因为list集合中是可以存储重复元素的,如果是Set集合,当存储重复元素时就会返回false,ArrayList的父类的父类重写了toString()方法

java------------------------集合List和迭代器Iterator

java------------------------集合List和迭代器Iterator

4.集合的遍历:就是依次获取集合中的每一个元素

案例:把集合转成数组,可以实现集合的遍历toArray()

java------------------------集合List和迭代器Iterator

5.带all的功能:boolean addAll(Collection c)

boolean removeAll(Collection c)

boolean containsAll(Collection c)

boolean retainAll(Collection c)

java------------------------集合List和迭代器Iterator

6.迭代器概述:集合是用来存储元素的,存储的元素需要查看,那么就需要迭代,即遍历

hasNext()

next()

java------------------------集合List和迭代器Iterator

7.list的方法:

void add(int index,E element) 在指定位置添加元素

E remove(int index)

E get(int index)

E set(int index,E element)修改指定位置的元素

java------------------------集合List和迭代器Iterator

java------------------------集合List和迭代器Iterator

 

8.训练:向list集合中存储学生对象,通过size()和get()方法结合使用遍历

java------------------------集合List和迭代器Iterator

9.训练:有一个集合,判断里面有没有world这个元素,如果有,添加一个javaee元素

java------------------------集合List和迭代器Iterator

java------------------------集合List和迭代器Iterator

10.ListIterator,list特有的迭代器

java------------------------集合List和迭代器Iterator

11.List的三个子类的特点:

ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高

Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低

Vector相对ArrayList查询慢,线程安全,相对于LinkedList增删慢

LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高

查询多用ArrayList

增删多用LinkedList

都多用ArrayList

java------------------------集合List和迭代器Iterator