疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

java中的集合Collection


 

       集合的特点:用于存储对象的容器(存储对象的引用),集合的长度是可变的,集合中不可以存储基本数据类型值

  1 /*

  2 person p = new person();

  3 ArrayList a = new ArrayList();

  4 al.add(p);//不表示将p这个对象放进了al这个容器里了 表示了将p这个对象的地址放进al容器里使al容器指向对象p

  5 容器中不可能存放的是对象的实体,只能存放对象的地址

  6 */

  集合与数组的区别:

  集合中可以存储任意的对象,且长度是可变的

  数组中只能存储同一类型的数据,且长度是不可变的。

  Collection的常用共性方法:

  添加元素 boolean add(Object);

  1 public static void addDemo() {

  2 ArrayList a1 = new ArrayList();

  3 a1.add("java01");

  4 a1.add("java02");

  5 a1.add("java03");

  6 a1.add("java04");

  7 System.out.println(a1);//可以直接打印集合

  8 }

  删除元素 boolean remove(Object); 返回的是boolean.(List集合下也可以通过指定的角标来删除某个对象,返回的是被删除的那个对象)

  1 public static void deleteDemo() {

  2 ArrayList a1 = new ArrayList();

  3 a1.add("java01");

  4 a1.add("java02");

  5 a1.add("java03");

  6 a1.add("java04");

  7 boolean b = a1.remove("java03");

  8 System.out.println(a1);

  9 System.out.println(b);

  10 }

  清空元素:void clear();如果集合不支持该方法会抛出该异常:

  UnsupportedOperationException

  1 public static void clearDemo() {

  2 ArrayList a1 = new ArrayList();

  3 a1.add("java01");

  4 a1.add("java02");

  5 a1.add("java03");

  6 a1.add("java04");

  7 a1.clear();

  8 System.out.println(a1);

  9 }

  判断某元素是否存在:boolean contains(Object)

  1 public static void containsDemo() {

  2 ArrayList a1 = new ArrayList();

  3 a1.add("java01");

  4 a1.add("java02");

  5 a1.add("java03");

  6 a1.add("java04");

  7 boolean b = a1.contains("java03");

  8 System.out.println("java03是否存在:"+b);

  9 }

  获取集合中元素的个数:int size();

  1 public static void sizeDemo() {

  2 ArrayList a1 = new ArrayList();

  3 a1.add("java01");

  4 a1.add("java02");

  5 a1.add("java03");

  6 a1.add("java04");

  7 int a = a1.size();

  8 System.out.println("size:"+a);

  9 }

  判断集合是否为空:boolean isEmpty();

  1 public static void isEmptyDEmo() {

  2 ArrayList a1 = new ArrayList();

  3 a1.add("java01");

  4 a1.add("java02");

  5 a1.add("java03");

  6 a1.add("java04");

  7 boolean b = a1.isEmpty();

  8 System.out.println("集合是否为空?:"+b);

  9 }

  取交集:al1中只会保留和al2中相同的元素,如果没有交集就为空:boolean retainAll(Object)

  1 public static void retainAllDemo() {

  2 ArrayList al1 = new ArrayList();

  3 al1.add("java01");

  4 al1.add("java02");

  5 al1.add("java03");

  6 al1.add("java04");

  7

  8 ArrayList al2 = new ArrayList();

  9 al2.add("java01");

  10 al2.add("java02");

  11 al2.add("java05");

  12 al2.add("java06");

  13

  14 //boolean b = al1.retainAll(al2);

  15 //System.out.println(b);

  16 System.out.println(al1);

  17 System.out.println(al2);

  18

  19

  20 boolean b = al1.removeAll(al2);//把相同的删除

  21 System.out.println(b);

  22 System.out.println(al1);

  23 }

  特殊方法迭代器:取出集合中的元素:Iterator iterator();(返回的是一个Iterator接口)

  Iterator接口中的方法:

  判断还有没有元素:boolean hasNext()

  迭代下一个元素:E next();

  删除元素:void remove()

  1 public static void iteratorDemo() {

  2 ArrayList al = new ArrayList();

  3 al.add("java01");

  4 al.add("java02");

  5 al.add("java03");

  6 al.add("java04");

  7

  8 /*注意:

  9 在迭代的时候要判断一次获取一次,也就是判断一次hasNext()一次,只能next()一次

  10 并且在迭代过程中不能使用集合的方法操作集合,会发生并发异常

  11 */

  12 Iterator it = al.iterator();

  13 while(it.hasNext()){

  14 System.out.println(it.next());

  15 }

  16 /*

  17 使用for可以节省空间

  18 for (Iterator it = al.iterator(); it.hasNext();) {

  19 if(it.next().equals("java03"))

  20 it.remove();

  21 }

  22 System.out.println(al);

  23 */

  24 }