Java

Java19-1 常用集合子类

2018-12-27  本文已影响0人  第二套广播体操

list : 有序 存入顺序和取出顺序一致 有索引 允许重复元素
set:不允许重复元素
List接口中特有方法 围绕索引定义
支持增删改查
add(index element);按照索引增加元素
remove(index); 按照角标删除
set(index newelement) 按照索引添加新元素
indexof(element);根据元素获取其位置
element get(index);根据索引获取元素
ListInterator();列表迭代器 可以对迭代到得元素进行增删改


Api

List 独有的遍历方法

for (int i = 0; i <list.size(); i++) {}

代码讲解

public class ListDemo {
    public static void main(String[] args) {
        List list=new ArrayList();
        ListMethod(list);
    }
    private static void ListMethod(List list) {
        list.add("abc1");
        list.add("abc2");
        list.add("abc3");
        list.add("abc4");
//        list.add(1,"haha"); 插入1位置上
//        list.set(2,"hehe");更改2位置上
//        System.out.println(list);
        for (int i = 0; i <list.size(); i++) {
            System.out.println("list:  "+list.get(i));
        }
        Iterator iterator=list.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
        }
        for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
            String next = (String) iterator.next();
            System.out.println("iterator:  "+next);
        }
      /*  for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
            String next = (String) iterator.next();
             if (next.equals("abc2"))//ConcurrentModificationException 并发访问 list修改 interator不知道
             {list.add(1,"呵呵");
                 }
            System.out.println(list);
        }*/
      //使用列表迭代器  删除不需要 增删改需要
        for (ListIterator it = list.listIterator(); it.hasNext(); ) {
            String next = (String) it.next();

            if (next.equals("abc2"))
            {it.add("哈哈");
                }
        }
        System.out.println(list);
    }
}

List 具体子类 子类之所以区分 因为数据结构不同 存储数据方式不同
vector 数组结构是数组 是可变长度的 线程同步的 慢 老版本 都慢
ArrayList 数组结构是数组 是可变长度的 线程不同步 快 新版本 增删速度不快 查询快
LinkedList 链表结构 可变长度 不同步 快 增删快 查询不快

上一篇下一篇

猜你喜欢

热点阅读