目录
collection
属于单列集合,Map属于双列集合。Collection是单列集合的祖宗接口,其功能是全部单列集合可以继承和使用的。
体系结构:
包括list和set两大分支。其特点和具体分支如图所示:
方法:
package Set;
import java.util.ArrayList;
import java.util.Collection;
public class demo1 {
public static void main(String[] args) {
Collection<String> c=new ArrayList<>();
c.add("aaa");
c.add("bbb");
System.out.println(c);
c.remove("aaa");
int i=c.size();
System.out.println(i);
//判断元素是否包含
//底层是equals方法进行判断,如果是自定义数据类型对象,那么要对该方法进行重写
System.out.println(c.contains("bbb"));
c.clear();
System.out.println(c.isEmpty());
}
}
遍历:
1.迭代器遍历:
使用迭代器遍历,迭代器在Java中的类是Iterator,是集合专用的遍历方式。
package Set;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class demo2 {
public static void main(String[] args) {
Collection<String>coll=new ArrayList<>();
coll.add("kobe");
coll.add("ingram");
coll.add("durant");
//对数据进行遍历
//用迭代器进行获取,迭代器好比一个箭头,默认指向集合的0索引
//利用循环去遍历
/*注意:
1.遍历完毕后,迭代器不会进行复位
2.循环中只能用一次next方法
3.在遍历时,不能对集合进行增加和移除操作,如果要删除,则要使用迭代器的remove方法。
*/
Iterator<String> it= coll.iterator();
while (it.hasNext()){//判断当前位置有没有元素
String out=it.next();//获取当前位置的对象,并将迭代器指向下一个对象
System.out.println(out);
}
}
}
2.增强for遍历
底层就是迭代器,于JDK5 之后出现。
package Set;
import java.util.ArrayList;
import java.util.Collection;
//修改增强for中的数据,不会改变原来的数据
public class demo3 {
public static void main(String[] args) {
Collection<String>coll=new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
coll.add("ddd");
coll.add("eee");
for (String s : coll) {
System.out.println(s);
}
}
}
3.Lambda表达式遍历
于JDK8后开始。
package Set;
import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;
//lambda表达式遍历
public class demo4 {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
coll.add("ddd");
coll.add("eee");
coll.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//lambda表达式
coll.forEach( s-> System.out.println(s));
}
}