package exercise;import java.util.ArrayList;
import java.util.Collection;public class CollectionDemo {public static void main(String[] args) {//注意点://Co1lection是一个接口,我们不能直接创建他的对象。//所以,现在我们学习他的方法时,只能创建他实现类的对象。//实现类:ArrayList//目的:为了学习co11ection接口里面的方法//自己在做一些练习的时候,还是按照之前的方式去创建对象。public class 类名 implements 接口名 {}Collection<String> c = new ArrayList<>();//1.添加元素//细节1:如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的。//细节2:如果我们要往Set系列集合中添加数据,如果当前要添加元素不存在,方法返回true,表示添加成功。// 如果当前要添加的元素已经存在,方法返回false,表示添加失败。因为set系列的集合不允许重复。c.add("hello");c.add("world");c.add("java");System.out.println(c);//清空//c.clear();//System.out.println(c);//3.删除//注意:因为co11ection里面定义的是共性的方法,所以此时不能通过索引进行删除。只能通过元素的对象进行删除。c.remove("hello");System.out.println(c);//4.判断元素是否包含//细节:底层是依赖equals方法进行判断是否存在的。//所以,如果集合中存储的是自定义对象,也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。System.out.println(c.contains("world"));//5.isEmptySystem.out.println(c.isEmpty());//获取集合长度System.out.println(c.size());}
}
迭代器遍历:不依赖索引。
package exercise;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Demo1 {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("hello");c.add("world");c.add("java");Iterator<String> it = c.iterator();while (it.hasNext()){String s = it.next();System.out.println(s);}}
}
System.out.println(it.next());System.out.println(it.hasNext());Iterator<String> it2 = c.iterator();while(it2.hasNext()){String s = it2.next();if ("hello".equals(s)){it2.remove();}System.out.println(s);}
快捷方式:数组或集合名.for。
package exercise;import java.util.ArrayList;
import java.util.Collection;public class Demo2 {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("hello");c.add("world");c.add("java");for (String s : c) {System.out.println(s);}}
}
package exercise;import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;public class Demo3 {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("hello");c.add("world");c.add("java");//使用匿名内部类方式c.forEach(new Consumer<String>() {//string依次访问集合中的每一个数据@Overridepublic void accept(String string) {System.out.println(string);}});//Lambda表达式c.forEach((String string) -> {System.out.println(string);});//精简版c.forEach(string -> System.out.println(string));}
}