zoukankan      html  css  js  c++  java
  • JAVA知识点总结(六)(集合)

    第十九章  集合

    一、数组弊端:

      数组长度是固定的,无法继续添加元素。

    二、什么是集合:

      Java提供一个集合类,它的长度是可以改变的,能储存任意的对象,长度随着元素的增加而增加。

    三、集合和数组的区别:

      1.数组:能存放引用数据类型和基本数据类型。

      2.集合:只能存放引用数据类型(对象),即使存放基本数据类型,也会自动帮你装箱,把基本数据类型转换为引用数据类型。

      3.数组长度是固定的,集合长度能够改变。

    四、什么时候用数组,什么时候用集合?

      1.如果元素个数固定,用数组

      2.对元素进行增删改查操作时,使用集合。

    五、集合类:

    1、创建一个集合:

    1 Collection c = new ArrayList();

    2、向集合内添加元素:

    1 Collection c = new ArrayList();
    2 boolean b1 = c.add("abc");
    3 boolean b2 = c.add(10);
    4 boolean b3 = c.add(true);                   

    3、删除集合内指定元素:

    1 ArrayList c2 = new ArrayList();
    2 c2.add("a");
    3 c2.add("b");
    4 c2.add("c");
    5 System.out.println(c2);
    6     
    7 //从集合中移除指定元素
    8 c2.remove("b");
    9 System.out.println(c2);

    4、判断一个集合是否为空:

    1 //判断一个集合是否为空
    2 System.out.println(c2.isEmpty());

    5、获取集合的长度:

    1 // 获取集合当中的长度
    2 System.out.println(c2.size());

    7、清空集合内的所有元素:

    1 // 清空集合内所有元素
    2 c2.clear();
    3 System.out.println(c2);

    8、合并两个集合:

    1 c1.addAll(c2);

    9、从c1中删除两个集合的交集:

    1 c1.removeAll(c2);

    10、判断c1中是否完全包含c2:

    1 //boolean res = c1.containsAll(c2);
    2 //System.out.println(res);

    11、取交集,将交集的值赋值给c1:

    1 boolean b1 = c1.retainAll(c2);
    2 System.out.println(b1);
    3 System.out.println(c1);

    12、通过数组遍历集合:

    Collection c = new ArrayList();
    c.add("a");
    c.add("b");
    c.add("c");
    //将集合转化为数组,所有元素提升为Object类型
    Object []arr = c.toArray();
    for(int i = 0;i<arr.lengthi;i++){
           System.out.println(arr[i]); 
    }

    六、ArrayList集合:

    1、使用迭代器遍历集合:

     1 List list = new ArrayList();
     2         list.add("a");
     3         list.add("2");
     4         list.add("c");
     5         list.add("d");
     6             
     7         //1.遍历集合
     8         Iterator it = list.iterator();
     9         while(it.hasNext()){
    10             System.out.pringln(it.next());    
    11             }
    12         }

    2、并发修改异常:

      在迭代集合过程中,是不允许修改集合结构的,比如添加,删除元素(个数的改变),如果改变了,就会发生并发修改异常。

    3、List 当中特有的迭代器,在删除修改时,不会造成并发修改异常。

    1 ListIterator it = list.listIterator();

    4、去除List集合中的重复元素:

     1     static ArrayList getSingleEle(ArrayList list) {
     2         // 1.创建一个新的集合
     3         ArrayList newa1 = new ArrayList();
     4         // 2.将一次取出每一个元素
     5         Iterator itr = list.iterator();
     6         while (itr.hasNext()) {
     7             Object obj = itr.next();
     8             // 3.每次取出元素都会判断新集合中已经有该元素
     9             // 4.如果是已有元素,不把元素存放到新集合中
    10             if (!newa1.contains(obj)) {
    11                 newa1.add(obj);
    12             }
    13         }
    14         //System.out.println(newa1);
    15         return newa1;
    16     }

    5、去除集合内重复的元素为对象时,重写equals方法:

     1 class Student {
     2     String name;
     3     int age;
     4 
     5     Student(String name, int age) {
     6         this.name = name;
     7         this.age = age;
     8     }
     9 
    10     @Override
    11     public String toString() {
    12         return "Student [name=" + name + ", age=" + age + "]";
    13     }
    14 
    15     // 做对象的比较,不想让其对比地址,必须要覆盖equals 根据自己的需求来定义什么时候相等(也可以通过快速生成)
    16     public boolean equals(Object obj) {
    17         Student stu = (Student) obj;
    18         return this.name.equals(stu.name) && this.age == stu.age;
    19     }
    20 
    21 }

    6、LinkedList集合:

    1         LinkedList list = new LinkedList();
    2         list.add("a");
    3         list.add("b");
    4         list.add("c");
    5         System.out.println(list);

    7、Vector集合:

     1     public static void main(String[] args) {
     2         //Vector 只是在内部进行了加锁,更加的安全
     3         Vector v = new Vector();
     4         v.add("a");
     5         v.add("b");
     6         v.add("c");
     7         System.out.println(v);
     8 
     9     }
    10 
    11 }
  • 相关阅读:
    【MVC 1】MVC+EF实体框架—原理解析
    数据结构导论(一)
    【JavaScript 14—学习总结】:从小事做起
    【JavaScript 13—应用总结】:锁屏遮罩
    【JavaScript 12—应用总结】:弹出登录框
    【JavaScript 11—应用总结】:下拉菜单
    【JavaScript 10—应用总结】:连缀
    【EF 1】EF实体框架 原理+实例
    【多 线 程】
    【命 令 行】
  • 原文地址:https://www.cnblogs.com/javastudydoing/p/11603150.html
Copyright © 2011-2022 走看看