1.集合简介
集合类的由来:
对象多了需要存储,如果对象个数不确定,就用集合容器进行存储。
数组:一旦被定义出来,大小和类型就确定了。
集合特点:
1.用于存储对象的容器。
2.集合的长度是可变的。
3.集合中不可以存储基本数据类型值。
集合容器因为内部的数据结构不同,有多种类型。
不断向上抽取,就形成了集合框架。
2.Collection的常见方法:
1.添加
boolean add(Object obj);
boolean addAll(Collection clect);
2.删除
boolean remove(Object obj);
boolean removeAll(Collection clect);
void clear();
3.判断
boolean contains(Object obj)
boolean containsAll(Collection clect)
boolean isEmpty()
4.获取
int size()
Iterator.iterator():取出元素的方式:迭代器
5.其他:
boolean retainAll(Collection clect):取交集
Object[ ] toArray():将集合转成数组
方法演示
Collection c = new ArrayList();//接口不能创建对象,只能用子类创建
System.out.println(c);// []
c.add("Hello");
c.add("World");
c.add("Java");
System.out.println(c.size());//3
System.out.println(c);// [Hello, World, Java]
c.remove("World");
System.out.println(c);// [Hello, Java]
System.out.println(c.remove("111"));//false
System.out.println(c.contains("Hello"));//true
System.out.println(c.contains("ABC"));//false
System.out.println(c.isEmpty());//false
c.clear();
System.out.println(c.isEmpty());//true
System.out.println(c);// []
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
Collection c2 = new ArrayList();
c2.add("abc5");
c2.add("abc6");
c2.add("abc7");
System.out.println(c1);// [abc1, abc2, abc3, abc4]
System.out.println(c2);// [abc5, abc6, abc7]
c1.addAll(c2);
System.out.println(c1);// [abc1, abc2, abc3, abc4, abc5, abc6, abc7]
System.out.println(c2);// [abc5, abc6, abc7]
c1.removeAll(c2);
System.out.println(c1);// [abc1, abc2, abc3, abc4]
System.out.println(c2);// [abc5, abc6, abc7]
System.out.println(c1.containsAll(c2));// false
c1.addAll(c2);
System.out.println(c1.containsAll(c2));// true
System.out.println(c1);// [abc1, abc2, abc3, abc4,abc5, abc6, abc7]
System.out.println(c2);// [abc5, abc6, abc7]
c1.removeAll(c2);
c1.add("abc5");
System.out.println(c1);// [abc1, abc2, abc3, abc4, abc5]
System.out.println(c2);// [abc5, abc6, abc7]
c1.retainAll(c2);
System.out.println(c1);// [abc5]
c1.clear();
c2.clear();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
c2.add("abc6");
c2.add("abc7");
c2.add("abc8");
System.out.println(c1);// [abc1, abc2, abc3, abc4]
System.out.println(c2);// [abc6, abc7, abc8]
System.out.println(c1.retainAll(c2));//true;返回值表示的是c1是否发生改变
3.Collection集合的遍历
3.1 迭代器
Collection c = new ArrayList();
c.add("abc1");
c.add("abc2");
c.add("abc3");
c.add("abc4");
/*
Iterator i = c.iterator();
while(i.hasNext()) {
System.out.println(i.next());
}
*/
for(Iterator i = c.iterator(); i.hasNext(); ) {
System.out.println(i.next());
}
//abc1
//abc2
//abc3
//abc4
3.2 foreach
Collection<String> list = new ArrayList<>();
list.add("abc");
list.add("qwe");
list.add("zxc");
for (String s : list) {
System.out.println(s);
}
3.3 Lambda表达式
Collection<String> list = new ArrayList<>();
list.add("abc");
list.add("qwe");
list.add("zxc");
list.forEach(s->System.out.println(s));