Java集合
独步秋风
这个作者很懒,什么都没留下…
展开
-
对HashMap进行排序
目录初始化数据通过TreeMap通过ArrayList对Key进行排序对Value进行排序通过Lambdas and Streams对Key进行排序对Value进行排序初始化数据Map<String, Employee> map = new HashMap<>(); Employee employee1 = new Employee(1L, "Mher");map.put(employee1.getName(), employe..原创 2020-08-17 22:25:18 · 311 阅读 · 0 评论 -
选择合适的Map
HashMap、TreeMap、LinkedHashMapHashMap作为提供快速存储和检索操作的通用映射实现,散列映射很好。然而,它的不足,因为它混乱和无序的安排条目。这导致在有大量迭代的情况下,它的性能很差,因为底层数组的整个容量影响遍历,而不仅仅是条目的数量。LinkedHashMap具有哈希映射的良好属性,并向条目添加顺序。它在有大量迭代的地方执行得更好,因为只考虑条目的数量而不考虑容量。TreeMap通过提供对键的排序方式的完全控制,树映射将排序提升到下一个层次...原创 2020-08-16 10:03:43 · 354 阅读 · 0 评论 -
TreeSet和HashSet
目录TreeSet1、特性2、通过构造方法自定义排序规则3、通过包装达到线程安全4、TreeSet 迭代5、关于是否可以保存null 元素HashSet1、特性:2、迭代异常同TreeSet3、性能TreeSet介绍:避免重复元素以及对元素进行排序,非线程安全1、特性元素唯一 不保留插入顺序 元素升序排序 非线程安全2、通过构造方法自定义排序规则Set<String> treeSet = new TreeSet<..原创 2020-08-16 09:25:25 · 344 阅读 · 0 评论 -
集合拷贝几种常用方法
一种简单的方式是通过构造方List<Plant> copy = new ArrayList<>(list);注意:这里拷贝的是引用而不是元素,也就是说某个集合对元素进行修改,则两个集合都会影响List<Integer> copy = new ArrayList<>(list);所以对于通过构造方法的方法最好是拷贝不可变的类,例如Integer就是不可以修改的通过addAll()和通过构造方法一样是拷贝的引用而不是元素..原创 2020-08-13 23:36:00 · 8509 阅读 · 5 评论 -
移除集合中的重复元素
通过过传统的java使用Set过滤一下@Test public void removeDuplicatesElementFromList() { List<Integer> listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0); List<Integer> listWithoutDuplicates = new ArrayList<>( n原创 2020-08-12 22:00:29 · 359 阅读 · 0 评论 -
移除集合中null元素的几种方法
目录通过javawhile循环另外一个简单的方式通过google guava框架会修改原集合保留原集合,新增新集合通过Apache Commons通java 8 lambada 表达式通过javawhile循环@Testpublic void removeNullFromList() { List<Integer> list = Lists.newArrayList(null, 1, null); while (list.re.原创 2020-08-12 21:53:30 · 3416 阅读 · 1 评论 -
将Iterator转换为List集合
创建IteratorIterator<Integer> iterator = Arrays.asList(1, 2, 3).iterator();通过while 循环List<Integer> actualList = new ArrayList<Integer>();while (iterator.hasNext()) { actualList.add(iterator.next());} assertThat(actualList, c原创 2020-08-10 21:55:04 · 1901 阅读 · 0 评论 -
固定元素的ArrayList
目录通过jdk通过java 9通过Guava通过Apache 集合工具类创建一个集合且集合中的元素不可以修改通过jdkCollections.unmodifiableList(list);@Test(expected = UnsupportedOperationException.class)public void givenUsingTheJdk_whenUnmodifiableListIsCreated_thenNotModifiable() { List&原创 2020-08-10 21:26:21 · 383 阅读 · 0 评论 -
LinkedList
目录介绍特性和ArrayList比较数据结构操作内存使用率用法创建添加元素删除元素队列操作结论介绍双向链表,实现了List和Deque接口。实现了List接口下的所有操作且元素包含null值。特性几个比较重要的特性1、not synchronized 不是线程安全的2、通过iterator和listiterator迭代器是fail-fast,意思就是说如果在遍历集合中对元素进行修改则会抛出ConcurrentModification..原创 2020-08-09 21:02:19 · 354 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。转载 2016-11-08 10:35:43 · 190 阅读 · 0 评论 -
ArrayList循环遍历并删除元素的常见陷阱
在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出bug。不妨把这个问题当做一道面试题目,我想一定能难道不少的人。今天就给大家说一下在ArrayList循环遍历并删除元素的问题。首先请看下面的例子:123456789101112131415161718转载 2016-11-07 23:38:16 · 293 阅读 · 0 评论 -
java 遍历arrayList的四种方法
package com.test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ArrayListDemo { publicstatic void main(String args[]){ List list = newArra转载 2016-11-07 23:33:07 · 761 阅读 · 0 评论 -
Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象How to Iterate Over a Map inJava在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用转载 2016-11-07 23:20:20 · 398 阅读 · 0 评论 -
Map集合的四种遍历方式
1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestMap { 6 public static void main(String[] args) { 7 Map map = new HashMap(); 8转载 2016-11-07 23:17:10 · 289 阅读 · 0 评论