package Demo29;
import java.util.ArrayList;
import java.util.Collection;
/*
java.util.Collection接口
所有单列集合的最顶层的接口,里面定义了所有单列集合共性的方法
任意的单列集合都可以使用Collection接口中的方法
共性的方法:
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():把集合中的元素,存储到数组中
*/
public class DemoCollection {
public static void main(String[] args) {
//创建集合对象,多太
Collection<String> coll = new ArrayList<>();//重写了toString方法[]
System.out.println(coll);
//public boolean add(E e):把给定的对象添加到当前集合中
boolean s1 = coll.add("张三");
System.out.println(s1);
//public boolean remove(E e):把给定的对象在当前集合中删除
//集合中存在元素,删除元素,返回true,集合中不存在元素,删除失败,返回false
boolean s2 = coll.remove("张思");
System.out.println(s2);
//public boolean contains(E e):判断当前集合是否包含给定的对象
//包含返回true
//不包含返回false
boolean s3 = coll.contains("李四");
System.out.println(s3);
//public boolean isEmpty():判断当前集合是否为空
//集合为空返回true,集合不为空返回false
boolean empty = coll.isEmpty();
System.out.println(empty);
//public int size():返回集合汇总元素的个数
int size = coll.size();
System.out.println(size);
//public Object[] toArray():把集合中的元素,存储到数组中
Object[] arr = coll.toArray();
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//public void clear():清空集合中所有的元素
coll.clear();
}
}
package Demo29;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
Iterator 迭代器:即Collection集合元素的通用获取方式,在取元素之前先要判断集合中有没有元素,
如果有,就能把这个元素取出来,继续判断,一直取完
有两个常用方法:
boolean hasNext():如果仍有元素可以迭代,则返回 true
E next():返回迭代的下一个元素。
void remove():从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
Iterator迭代器是一个接口,无法直接使用,需要Iterator接口的实现类,
Collection接口中有一个方法叫叫iterator(),这个方法就返回迭代器的实现对象
使用迭代器的步骤:
1、使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2、使用Iterator接口中的方法hasNext判断有没有下一个元素
3、使用Iterator接口中的方法next取出集合中的下一个元素
*/
public class DemoIterator {
public static void main(String[] args) {
//创建集合对象
Collection<String> coll = new ArrayList<>();
//向集合中添加元素
coll.add("迪丽热巴");
coll.add("古力娜扎");
coll.add("玛尔扎哈");
coll.add("撒由那拉");
//使用iterator()获取迭代器的实现对象
//注意,迭代器也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
//多态 接口 实现类对象
Iterator<String> it = coll.iterator();
while (it.hasNext()) {
String next = it.next();
System.out.println(next);
}
}
}
package Demo29;
import java.util.ArrayList;
/*
增强for循环,专门用来遍历数组和集合的,内部原理还是iterator迭代器,所以在遍历过程中,不能对集合进行增删操作
public interface Collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for
格式:
for(集合/数组的数据类型 变量名: 集合名/数组名){
System.out.println(变量名);
}
for循环必须有遍历的目标,目标只能是集合或者数组
*/
public class DemoForeach {
public static void main(String[] args) {
demo1();
demo2();
}
//使用增强for遍历集合
private static void demo2() {
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
for (String s : list) {
System.out.println(s);
}
}
//使用增强for遍历数组
private static void demo1() {
int[] arr ={1,2,3,4,5};
for (int i : arr) {
System.out.println(i);
}
}
}