03Java集合
Java集合
专注_每天进步一点点
成为健康快乐长寿有价值的人,拥有明亮灵动的眼睛,平静谦和的微笑。
展开
-
@NotEmpty、@NotBlank、@NotNull 区别和使用
@NotEmpty、@NotBlank、@NotNull 区别和使用原创 2023-03-02 09:32:13 · 399 阅读 · 0 评论 -
004 ConcurrentHashMap 和 Collections.synchronizedMap(Map<K,V> m)的比较
写在前面的话,最好还是去看源码和源码上面的注释。1、ConcurrentHashMap的源码里面有个重要的:concurrencyLevel就是并发级别/** * A hash table supporting full concurrency of retrievals and * adjustable expected concurrency for updates. This class obeys the * same functional specification as {@原创 2022-04-18 13:57:07 · 287 阅读 · 0 评论 -
003 String,StringBuffer与StringBuilder的区别
在运行速度和线程安全两方面进行比较:运行速度为:StringBuilder > StringBuffer > String 线程安全:StringBuilder是线程不安全的,而StringBuffer是线程安全的适用情况:String:适用于少量的字符串操作的情况 StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况 StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况原因分析速度方面:String为字符串常量,值是不可变的,这就导致每原创 2022-02-17 10:41:05 · 200 阅读 · 0 评论 -
002 Java中的IntegerCache
阿里巴巴Java开发手册中,[强制] 所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较说明:对于Integervar=?在-128至127之间的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。先看一段代码:public class IntegerTest { pu原创 2022-02-16 12:06:42 · 476 阅读 · 0 评论 -
001 Java中的 == 与 equals 的区别
记住结论:对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址 对于equals方法,注意:equals方法不能作用于基本数据类型的变量,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。代码验证:public class EqualsTest { public static void main原创 2022-02-16 11:11:08 · 137 阅读 · 0 评论 -
Java中json字符串转换成map/list
import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.codehaus.jettison.json.JSONArray;import org.codehaus.jettiso...原创 2018-09-26 12:23:48 · 16119 阅读 · 1 评论 -
深入理解Java中的容器
原文地址: https://blog.csdn.net/a2011480169/article/details/520476001、容器的概念在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体2、容器与数组的关系之所以需要容器:1、数组的长度难以扩充2、数组中数据的类型必须相同容器与数...转载 2019-04-01 15:19:49 · 158 阅读 · 0 评论 -
为什么Map桶中个数超过8才转为红黑树
这是笔者一个好友面试阿里时,被问及的一个问题,应该不少人看到这个问题都会一面懵逼。因为,大部分的文章都是分析链表是怎么转换成红黑树的,但是并没有说明为什么当链表长度为8的时候才做转换动作。笔者第一反应也是一样,只能初略的猜测是因为时间和空间的权衡。 要弄明白这个问题,我们首先要明白为什么要转换,这个问题比较简单,因为Map中桶的元素初始化是链表保存的,其查找性能是O(n),而树结构能将查找性能提升到O(log(n))。当链表长度很小的时候,即使遍历,速度也非常快,但是当链表...转载 2020-06-10 13:59:24 · 139 阅读 · 0 评论 -
Java中对list集合中的数据按照某一个属性进行分组
写在前面的话,这里的list是List<Map<String,Object>>这样的结构.import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;impor...原创 2018-09-26 12:42:38 · 10514 阅读 · 2 评论 -
List中存的Map , 按照Map的某个值进行分类
原始数据结构 , List<Map<String, Object>> sourceData = new ArrayList<Map<String, Object>>();[{ GROUP = 1, OFFER_NAME = kk}, { GROUP = 2, OFFER_NAME = qq}, { GROUP = 3, OFFER_NAME = pp}, { GROUP = 4, OFFER_NAME = 手机}, { GROU原创 2020-05-21 14:52:02 · 1237 阅读 · 0 评论 -
如何高效的学习技术?
本文目录 隐藏1. 学什么 2. 基础与应用 2.1. 广度与深度 2.2. 哲学 2.3. 英语 3. 怎么学 3.1. 知识体系 3.2. 克服遗忘 3.3. 碎片时间 4. 用起来 5. 技术分享 6. 造个轮子 我们相信努力学习一定会有收获,但是方法不当,既让人身心疲惫,也没有切实的回报。高中时代,我的同桌是个漂亮女同学。她的物理成绩很差,虽然她非常勤奋的学习,但成绩总是不理想。为了巩固纯洁的同学关系,我亲密无间地辅导她的物理,发现她不知道题目考什转载 2020-10-16 09:15:15 · 281 阅读 · 2 评论 -
HashMap底层实现原理及面试问题
参考地址:https://blog.csdn.net/suifeng629/article/details/82179996https://www.cnblogs.com/java-jun-world2099/p/9258605.htmlhttp://baijiahao.baidu.com/s?id=1601416041995350500&wfr=spider&for=pc...转载 2019-06-06 14:21:59 · 376 阅读 · 0 评论 -
java Clone使用方法详解
java“指针” Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。看到这个标题,是不是...转载 2019-06-05 11:06:40 · 143 阅读 · 0 评论 -
HashTable HashMap ConcurrentHashMap
Hashtable是线程安全的,它的方法是同步了的,可以直接用 在多线程环境中。而HashMap则不是线程安全的。在多线程环境中,需要手动实现同步机制。效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况 下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他线程访问HashTabl...原创 2018-12-17 17:33:53 · 165 阅读 · 0 评论