collection接口(最底层接口)
-
定义的是所有单列集合中共性的方法
-
所有的单列集合都可以使用的方法
-
没有带索引的方法
-
collection<string> coll = new ArrayList<>(); //多态,接口指向实现类
-
组合框架的学习方式:
- 学习顶层:学习顶层接口/抽象类中共性方法,所有的子类都可以使用
- 使用底层:底层不是抽象类就是接口,无法创建对象使用,需要使用底层的子类创建对象使用
-
常用功能:
-
public boolean add(E e):
-
把给定的对象添加到当前集合中去
-
-
-
public void clear():
- 清空结合中所有内容
-
public boolean remove(E e):
- 把给定的对象在当前集合中删除
-
public boolean contains(E e ):
- 判断当前集合中是否包含给定的对象
-
public boolean isEmpty():
- 判断当前集合是否为空
-
public int size():
- 返回集合中元素的个数
-
public object[] toArray():
- 把集合中的元素,存储到数组中
-
list接口
- 有序的集合(存储和取出元素的顺序相同)
- 允许存储重复的元素
- 有索引,可以使用普通的for循环遍历
set接口
- 不允许存储重复元素
- 没有索引(不能使用普通的for循环)
多态
- 接口指向实现类
迭代器
-
取之前先判断集合中是否有元素,如果有,就把这个元素取出来,再判断,如果还有就在取出来,一直讲所有元素全部取出来。
-
Java.util.Iterator
- 最常用两方法
- boolean hasNext():
- 如果还有元素可以迭代,返回true
- 如果没有,返回false
- next():
- 取出集合中的下一个元素
- Iterator iterator() :返回在此collection元素上进行的迭代的迭代器
- boolean hasNext():
- 最常用两方法
-
迭代器的使用步骤(重点):
-
使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
-
Iterator接口也是有泛型的,迭代器的泛型跟着集合走,集合是啥泛型,迭代器就是啥泛型
-
Iterator it = coll.iterator();
-
-
使用Iterator接口中的方法hasNext判断是否还有下一个元素
-
boolean b = it.hasNext()
-
-
使用Iterator接口中的方法next取出集合中的下一个元素
-
String s = it.next();
-
-
不知道循环次数的使用while循环,循环结合条件是,hasNext方法返回false
-
-
增强for循环(for each)
-
底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写
-
jdk1.5后出现的
-
Collection extends Iterable:所有的单列集合都可以使用增强for
-
用来遍历集合和数组
-
格式:(重点)
-
for(集合/数组 变量名:集合名/数组名){ sout(变量名); }
-
-