对象数组:
引用类型的数组存的都是地址值。
集合:
集合和数组的区别:
1、存储的类型不同。
2、长度不同。
什么时候用集合,什么时候用数组?
元素个数固定用数组,不固定用集合。
集合的框架图:
单列集合:
顶层接口:Collection
List体系 特点:有序(元素存取的顺序是一致的),可重复。
ArrayList:底层的数据结构是数组。
Vector:底层的数据结构是数组。
LinkedList:底层的数据结构是链表。
Set体系 特点:无序,唯一。
HashSet:底层的数据结构是哈希表。
TreeSet:底层的数据结构是二叉树。
双列集合
顶层接口:Map
HashMap:底层的数据结构是哈希表。
TreeMap:底层的数据结构是二叉树。
Collection中的方法:
boolean add(Object obj); 添加
boolean remove(Object obj); 移除
boolean contains(Object obj);是否包含给定的元素
boolean isEmpty(); 判断集合是否为空
int size(); 获取集合中元素的个数。
void clear(); 清空集合(相当于把集合中的元素都删掉)
了解:
boolean addAll(Collection c);
boolean removeAll(Collection c);
boolean containsAll(Collection c);
boolean retainAll(Collection c); 判断两个集合是否有交集,
如果调用者不改变,返回值是false,如果改变,结果是true
集合的遍历方式:
1、转数组遍历。
public Object[] toArray(); 把集合对象转成数组对象
2、迭代器(Iterator) 重点掌握
思路:
1、获取迭代器对象。
public Iterator iterator(); //Collection接口中的方法根据集合对象获取到迭代器对象
2、判断迭代器中是否有元素。
public boolean hasNext(); // Iterator接口里边的,判断迭代器中是否有元素
3、有的话,就可以来获取到这个元素。
public Object next(); // Iterator接口里边的,获取集合中的元素
需求:(5-8分钟)
1:首先定义一个标准学生类(name,age属性)
2:用集合存储3个学生,然后遍历集合。打印出每个学生的name和age。
解题思路:
A:创建集合对象。
B:往集合对象中添加元素。
示例: c.add(new Student("张三" , 23));
C:通过迭代器遍历集合。
Iterator it = c.iterator(); //通过集合对象获取到迭代器对象
//判断迭代器中是否有元素
while(it.hasNext()){
Student s = (Student)it.next();
}
|