集合
文章平均质量分 55
LiZhen798
软件研发工程师
语言:Java,Go
展开
-
map.keySet()修改会影响原map
map的keySet()方法返回的集合,对集合进行添加或者删除会影响到原来的集合map。进行removeAll操作会改变原有map集合。所以 在使用时需要注意。进行add操作会报错。原创 2022-10-14 13:41:19 · 660 阅读 · 0 评论 -
Java 中Duplicate key 异常
我这里使用的是两个key 相同时,保留先存进去的那个元素。相比第一个方法,主要就是我们要去实现一个策略,来决定key相同时,元素如何保留。有这样两个方法,出错的地方我们是用的第一个方法,对于可能存在重复key的转换中,我们要使用第二个方法。这个异常就是说,转换map的过程中,有两个key是banana的元素,不知道怎么取舍,因此产生异常。Java中Duplicate key 异常解决。解决办法就是我们去提供这样一个策略。...原创 2022-08-10 16:05:23 · 11091 阅读 · 0 评论 -
list.clear()与list = null 区别
一 . list.clear()底层源码实现在使用list 结合的时候习惯了 list=null ;在创建这样的方式,但是发现使用list的clear 方法很不错,尤其是有大量循环的时候1、list 接口 的ArrayList类的clear() 方法源码如下:/** * Removes all of the elements from this list. The list will * be empty after this call returns. ..原创 2022-04-02 19:09:23 · 1286 阅读 · 0 评论 -
Collections.sort升序和降序
如果是对List<Integer> 或者 List<String> 这样本身就实现了Comparable接口的泛型集合排序。如果使用Collections.sort(List<Integer>) 是升序的如果要降序呢?可以传入Collections.reverseOrder(), 返回一个倒叙的Comparator对象,如下:Collections.sort(List<Integer>, Collections.reverseOrder(.原创 2022-03-14 19:38:48 · 4366 阅读 · 0 评论 -
Variable used in lambda expression should be final or effectively final
目录场景描述匿名类中的局部变量思考场景描述我们在使用Java8 lambda表达式的时候时不时会遇到这样的编译报错:这句话的意思是,lambda 表达式中使用的变量应该是 final 或者有效的 final,为什么会有这种规定?匿名类中的局部变量其实在 Java 8 之前,匿名类中如果要访问局部变量的话,那个局部变量必须显式的声明为 final,如下代码在 Java 7 中是编译不过的: @Test public void demo() { ...原创 2022-01-11 15:18:41 · 2927 阅读 · 0 评论 -
java List复制:浅拷贝与深拷贝
List浅拷贝众所周知,list本质上是数组,而数组的是以地址的形式进行存储。如上图将list A浅拷贝给list B,由于进行的是浅拷贝,所以直接将A的内容复制给了B,java中相同内容的数组指向同一地址,即进行浅拷贝后A与B指向同一地址。造成的后果就是,改变B的同时也会改变A,因为改变B就是改变B所指向地址的内容,由于A也指向同一地址,所以A与B一起改变。几种浅拷贝1、遍历循环复制List<Person> destList=new ArrayList<Person原创 2022-01-07 11:32:36 · 2957 阅读 · 0 评论 -
java8的Collector.toMap值为空的异常
最近在使用lambda表达式的Collectors.toMap方法时就遇到了一个问题。大致源码如下:public class Test {public static void main(String[] args) {// initMemberList为获取数据的方法List<Member> list = Test.initMemberList();Map<String, String> memberMap = list.stream().collect(Co原创 2021-12-23 13:48:44 · 3231 阅读 · 0 评论