集合分类
集合分为单列集合和双列集合
而我们之前学习的arraylist集合只是单列集合中的一种
顾名思义,单列集合每次只能添加一种元素,而双列集合每次能够添加两组元素
collection
collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的
它里面有许多的实现方法
1.public boolean add(E e):把给定的对象添加到当前集合中
ini
Collection<String> o1=new ArrayList<>();
o1.add("zhang");
2.public boolean clear():清空当前所有的元素
ini
Collection<String> o1=new ArrayList<>();
o1.add("zhang");
o1.clear();
返回[]
3.public boolean remove():把给定对象在当前集合中删除
csharp
Collection<String> o1=new ArrayList<>();
o1.add("zhang");
o1.remove("zhang")
返回[]
4.public boolean isEmpty():判断当前集合是否为空,
底层是判断集合的长度是否为0.
5.public int size():返回集合中元素的个数/集合的长度
集合的遍历
1.迭代器遍历interator
markdown
迭代器在Java中的类是iterator,迭代器是集合专用的遍历方式
既然是类那么使用肯定要创建对象啦
ini
Iterator<String> it=o1.iterator();
<>表示要集合里面元素类型,当然基本数据类型要使用包装类才能够使用
而迭代器对象默认指向当前集合的0索引(有点类似C语言的指针)
iterator中也有几个方法来帮助我们遍历数组
boolean hasNext():判断当前位置是否有无元素,有元素返回true,没有元素返回false
E next():获取当前位置的元素,并将迭代器对象移向下一个位置
ini
while(it.hasNext()){
String str = it.next();
System.out.println(str);
}
遍历的代码就是这样的
遍历完毕后,要想再次遍历只能重新创建对象
当对一个空位置使用next就会报错
而如果在循环中使用两次next,如果集合元素是奇数就会出现上述报错
2.增强for遍历
这种遍历方式比较方便,底层就是迭代器,是为了简化迭代器的代码书写的
所有的单列结合和数组才能用增强for进行遍历
格式:
for(元素的数据类型 变量名:数组或者集合){
} 其中变量名表示 第三方变量,表示每次循环中集合中的元素
ini
Iterator<String> it=o1.iterator();
for (String s : o1) {
System.out.println(s);
}
3.Lambda方式遍历
在集合的方法中有一种用于遍历的方法forEach(接口的实现类)
实现类可以用匿名内部类来写,而我们之前学了lambda的语法,可以大大简化代码
ini
Iterator<String> it=o1.iterator();
o1.forEach((s)->{
System.out.println(s);
});