博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSE_day12 集合
阅读量:4099 次
发布时间:2019-05-25

本文共 1401 字,大约阅读时间需要 4 分钟。

一、摘要

        Collection  List  Set

        List--->ArrayList  Vector LinkedList
        ArrayList:底层数据结构是数组 查询快,增删慢  线程不安全 效率高
        Vector 底层数据结构是数组 查询快,增删慢,线程安全,效率低
        LinkedList 底层数据结构是链表 查询慢 增删快 线程不安全效率高
        集合遍历的遍历方式 迭代器,for循环
        泛型机制:JDK1.5之后引入的一个新特性,将数据类型的明确工作推迟到创建对象,或者调用方法时再去明确的一种机制  泛型可以定义在 接口上,类上,方法上
        注意:泛型他旨在编译器有效,到了运行期,就会擦除
        泛型的好处:扩展性强,他将问题提前到了编译器,避免了向下转型
        向下转型 ? extends Object 向上转型 ? super Dog

二、   List集合

1、 List 接口

        List集合的特有功能概述
         void add(int index,E element): 在指定索引处添加元素
         E remove(int index):移除指定索引处的元素 返回的是移除的元素
         E get(int index):获取指定索引处的元素

2、遍历集合

      1)迭代器方法

            Iterator iterator = list.iterator();

            while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

2)列表迭代器法

ListIterator<E> listIterator() 返回此列表元素的列表迭代器(按适当顺序)

ListIterator<String> listIterator = list.listIterator();

        while (listIterator.hasNext()) {
            System.out.println(listIterator.next());
        }

       boolean hasPrevious() 

       如果以逆向遍历列表,列表迭代器有多个元素,则返回 true,想要进行反向遍历,先要进行正向遍历。

3)采用(加强)for循环来遍历

        for(int i=0;i<list.size();i++) {
            System.out.println(list.get(i));
        }

(加强for循環)  Integer num 容器中的数据类型 以及元素的变量名

        integers 容器名
        for (Integer num: integers){
            System.out.println(num);
        }

3、ConcurrentModificationException 并发修改异常

为什么会出现并发修改异常:我现在用的是迭代器,进行遍历,在遍历之前,迭代器已经知道了,你集合中的所有元素然后你在迭代的过程当中,突然间想要添加一个元素,迭代器肯定加不进去的

        解决方案1:用迭代器中的添加方法
        
        解决方法2 用for 进行遍历

4、可变参数 数据类型... 变量名

    private static int addMthod(int... a) {

       可变参数本质上是个数组
        System.out.println(a.length);
        int sum=0;
        for(int num:a){
            sum+=num;
        }

       return sum;

    }
 

   

 

转载地址:http://dqksi.baihongyu.com/

你可能感兴趣的文章
Framework之View的工作原理(一)
查看>>
Web应用架构
查看>>
设计模式之策略模式
查看>>
深究Java中的RMI底层原理
查看>>
用idea创建一个maven web项目
查看>>
Kafka
查看>>
9.1 为我们的角色划分权限
查看>>
维吉尼亚之加解密及破解
查看>>
DES加解密
查看>>
TCP/IP协议三次握手与四次握手流程解析
查看>>
PHP 扩展开发 : 编写一个hello world !
查看>>
inet_ntoa、 inet_aton、inet_addr
查看>>
用模板写单链表
查看>>
用模板写单链表
查看>>
链表各类操作详解
查看>>
C++实现 简单 单链表
查看>>
数据结构之单链表——C++模板类实现
查看>>
Linux的SOCKET编程 简单演示
查看>>
正则匹配函数
查看>>
Linux并发服务器编程之多线程并发服务器
查看>>