java常用容器简要性能分析(List。Map。Set)

您所在的位置:网站首页 list容器已有元素随机访问 java常用容器简要性能分析(List。Map。Set)

java常用容器简要性能分析(List。Map。Set)

2024-05-09 09:04| 来源: 网络整理| 查看: 265

 

嗯,实习的时候看到这个,感觉蛮好,这里摘录学习,生活加油:

我曾经害怕别人嘲笑的目光,后来,发现他们的目光不会在我身上停留太久,人们更愿意把目光放在自己身上。 知乎上看到,讲给自己。

List

List和Set都属于Collection的子接口,List集合中的元素是按照插入顺序进行排列的,允许出现重复元素,

List接口下的常用实现类有ArrayList和LinkedList,对于List来讲,

元素只能是通过set更新,不能通过add更新,通过add只能在指定索引位置添加元素,不会实现元素的覆盖,通过remove移除

接口继承关系:

ArrayList :

// 查找指定位置元素的下标 public int indexOf(Object o); // 查找指定元素最后一次出现的位置 public int lastIndexOf(Object o) ; // 清空集合元素 public void clear(); // 等等......

 

ArrayList的特点: **

ArrayList内部是使用数组来存储数据,并且是一个"动态"的数组,在添加元素时,如果发现容量不够时,会进 行扩容。 ArrayList支持随机访问元素,随机访问元素的效率是O(1) ArrayList在尾部添加元素的效率为O(1),add方法默认在尾部进行添加,在使用的时候最好在尾部添加元素 效率更佳 ArrayList在进行删除元素或者在中间、头部插入元素时会导致数组内部移动,进行数组拷贝,平均时间复杂度 为O(n) 

ArrayList的迭代方式:

1、下标迭代 // 使用下标对List进行外部迭代 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i));} 2、可以使用增强for进行迭代 // 采用增强for的迭代方式其实底层是使用迭代器进行迭代,在迭代的过程中不允许对元素进行修改 for (String s : list) { System.out.println(s);} 3、采用内部迭代的方式 // 内部迭代forEach,在迭代的过程中仍然不允许对元素进行修改过删除操作 list.forEach(item -> System.out.println(item)); // 内部迭代还支持并行方式对元素进行迭代 如果数据量非常大的时候可以采用该方式(一般不采用)迭代出来的元素可能无序 list.parallelStream().forEach(System.out::println);

 

list.stream().forEach(System.out::print);

 

4、内部迭代底层实现 public void forEach(Consumer


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3