------【Java集合框架】
_夜渐凉
_与其临渊羡鱼,不如退而结网
展开
-
Java集合框架05——ArrayList和LinkedList的区别
前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容。List概括 先来回顾一下List在Collection中的的框架图: 从图中我们可以看出: 1. List是一个接口,它继承于Collection接口,代表有序的队列。 2. AbstractLi...转载 2018-09-10 13:57:46 · 205 阅读 · 0 评论 -
Array.asList:数组转list时你一定要知道的“陷阱”!
最近开发中,业务上处理,经常用到asList方法,这让我不经想起了它的很多容易让人犯错的地方或者误解的地方,所以就想抽出时间来,整理一下,和大家分享出来,深夜了,话不多说,主要以代码为主,简易的代码,你一看就知道了!大家都知道这个方法是将数组转成list,是JDK中java.util包中Arrays类的静态方法。大家使用时一定要注意(请看代码和注释,一看就明了了): String s...转载 2018-11-20 08:55:57 · 863 阅读 · 0 评论 -
Java 之HashMap.values()方法误用
1.出错 今天在测试代码的时候发现程序报错,看代码才知道是使用HashMap.values()方法的时候出错。因为项目中需要获取Map的值的集合然后进行遍历,所以就很自然的调用了HashMap.values()方法,如下所示public class Test { public static void main(String[] args) { Map&l...转载 2019-05-23 17:00:00 · 6907 阅读 · 2 评论 -
在for循环中remove list报错越界的问题,及Iterator简介
—— Java中的集合边遍历边删除是比较好的选择是:使用迭代器中的方法Iterator简介Iterator的API 关于Iterator主要有三个方法:hasNext()、next()、remove()hasNext:没有指针下移操作,只是判断是否存在下一个元素 next:指针下移,返回该指针所指向的元素 remove:删除当前指针所指向的元素,一般和next...原创 2019-06-14 13:00:14 · 957 阅读 · 0 评论 -
Java 两种ArrayList集合自定义对象属性排序,Comparator接口 或 Comparable接口
1,Comparator接口 —— 重写Comparatorpublic class User { private String id; private String name; public User (String id, String name) { this.id = id; this.name = name; }...原创 2019-08-08 17:56:02 · 367 阅读 · 0 评论 -
Java 两种TreeSet集合自定义对象属性排序,Comparator接口 或 Comparable接口
前言:TreeSet和HashSet的区别在于, HashSet不可以进行排序,TreeSet可以进行排序, 默认使用字典顺序排序, 也可以进行自定义排序。1,但实际使用HashSet时会发现,HashSet好像会自动进行了排序,为什么呢?原因:HashSet是set的子集,Set的底层是Map实现的,Map的实现是散列码,就是根据key的hashcode计算出来的,通过这个hashcod...原创 2019-08-09 11:53:54 · 572 阅读 · 1 评论 -
面试必问-几种线程安全的Map解析
HashMap线程安全的吗?Java中平时用的最多的Map集合就是HashMap了,它是线程不安全的。看下面两个场景:1、当用在方法内的局部变量时,局部变量属于当前线程级别的变量,其他线程访问不了,所以这时也不存在线程安全不安全的问题了。2、当用在单例对象成员变量的时候呢?这时候多个线程过来访问的就是同一个HashMap了,对同个HashMap操作这时候就存在线程安全的问题了。...转载 2019-08-26 11:13:58 · 575 阅读 · 0 评论