程序员

JavaSE-Collection

2016-05-31  本文已影响51人  陇上伯约

集合

java.util.Collection 集合-用于存储一组元素,提供了用于维护集合的相关操作,它派生了两个接口,List-可重复集,Set-不可重复集

Collection<String> c = new ArrayList<String>();//尖括号中为集合的泛型,基本上每创建一个集合都应该为集合创建一个泛型,其规定了集合当中
存储的数据类型,利于维护和错误检查
c.add("a");c.add("b");c.add("c");
System.out.println(c.add("a"));//true
System.out.println(c);//[a,b,c]
System.out.println(c.size());//3
System.out.println(c.isEmpty());//false
c.clear();
System.out.println(c.size());//0
System.out.println(c.isEmpty());//true
//先声明一个Point类,包含x、y两个成员变量,提供带参构造,equals方法等在此不做赘述,可由eclipse自动生成
Collection<Object> c = new ArrayList<Object>();
        c.add(new Point(1,2));
        c.add(new Point(3,4));
        c.add(new Point(5,6));
        System.out.println(c);//[(1,2), (3,4), (5,6)]
        Point p = new Point(1,2);
        System.out.println("是否包含?"+c.contains(p));//true
Collection<Point> c = new ArrayList<Point>();
        
        Point p = new Point(1,2);
        System.out.println(p);//(1,2)
        c.add(p);
        System.out.println(c);//[(1,2)]
        
        p.setX(2);
        System.out.println(p);//(2,2)
        System.out.println(c);//[(2,2)]
Point p = new Point(1,2);
c.remove(p);
System.out.println(c);//[(3,4), (5,6)]
集合的批量操作
        /**
         * List 有序 可重复
         */
        Collection<String> c1 = new ArrayList<String>();
        c1.add("c");
        c1.add("c++");
        c1.add("Java");
        System.out.println("c1:"+c1);//c1:[c, c++, Java]
        /**
         * Set 无序 不可重复
         */
        Collection<String> c2 = new HashSet<String>();
        c2.add("Android");
        c2.add("ios");
        c2.add(".net");
        c2.add("Java");
        c2.add("ios");
        System.out.println("c2:"+c2);//c2:[Java, .net, ios, Android]
boolean flag = c1.addAll(c2);
System.out.println(flag+" "+c1);//true [c, c++, Java, Java, .net, ios, Android] 由于c1为可重复集,所以会有两个Java
Collection<String> c3 = new ArrayList<String>();
        c3.add("java");
        c3.add("android");
boolean isContains = c1.containsAll(c3);
System.out.println("是否全包含?"+isContains);//true
c1.removeAll(c2);
System.out.println(c1);//[c,c++]
集合的遍历

Collection提供了统一的集合遍历方式-迭代器模式
java.util.Iterator是一个接口,规定了用于遍历集合的相关方法,不同的集合提供了相应的实现类,无需记住他们的名字,只将他们当做Iterator即可
遍历集合遵循:问-取-删 的原则,其中删除不是必须操作

Iterator<String> it = c.Iteratro();//获取用于遍历当前集合的迭代器
while(it.hasNext()){
    String str = it.next();
    if("c".equals(str)){
        it.remove();//在使用迭代器遍历集合时不要用集合的方式删除元素c.remove(str),否则会抛出异常
   }
   System.out.println(str);//a b
}
System.out.println(c);[a,b]

增强型for循环遍历集合

for(String str : c){
    System.out.println(str);//a b c
}
上一篇 下一篇

猜你喜欢

热点阅读