• 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<e>  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 }
  • 相关阅读:
    【linux]】lighttpd的日志格式
    【vi】awk为指定行的指定字段添加一个单词
    【Android】命令行操作-启动应用程序
    CCS设置第一个li的元素与其他li样式不同
    nginx+tomcat 下POST响应参数过大无法显示完整及文件下载服务遇到过大文件无法下载解决办法
    有重复行,查询时只保留最新一行的sql
    Android定时执行和停止某任务
    MySQL每天自动增加分区
    <html:option获取文本值
    easyui datagrid 增删改查示例
  • 原文地址:https://www.cnblogs.com/systemEsc/p/3517520.html
Copyright © 2020-2023  润新知