java集合
文章平均质量分 68
java集合
风起的年华
这个作者很懒,什么都没留下…
展开
-
懒汉式单例模式的问题和Double Check
单例模式是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。该模式有三个基本要点:这个类只能有一个实例;它必须自行创建这个实例;它必须自行向整个系统提供这个实例。懒汉式单例模式,使用的时候才创建但懒汉式单例在多线程情况下会出现一个问题, 就是在多线程情况下会出现单例对象会创建多个实例;/** * 懒汉式单例模式,使用的时候才创建, * 在多线程情况下会出现一个问题, * 就是在多线程情况下会出现单例对象会创建多个实例; */class Singleton {原创 2021-09-27 15:28:09 · 448 阅读 · 0 评论 -
ArrayList和LinkedList的区别
面试中经常会被问到ArrayList和LinkedList的区别,今天总结一下。数据结构图示顺序表(ArrayList)顺序表一般表现为数组,使用一组地址连续的存储单元依次存储数据元素,如图 1 所示。它具有如下特点:长度固定,必须在分配内存之前确定数组的长度。存储空间连续,即允许元素的随机访问。存储密度大,内存中存储的全部是数据元素。要访问特定元素,可以使用索引访问,时间复杂度为 O(1)O(1)O(1)。要想在顺序表中插入或删除一个元素,都涉及到之后所有元素的移动,因此时间复杂度为 O(原创 2021-06-04 05:25:17 · 611 阅读 · 0 评论 -
StringTable的概念、hashcode()、equals的区别与联系、String、StringBuffer、StringBuilder区别、ArrayList 和 LinkedList
String table又称为String pool,字符串常量池,其存在于堆中(jdk1.7之后改的)。最重要的一点,String table中存储的并不是String类型的对象,存储的而是指向String对象的索引,真实对象还是存储在堆中。此外String table还存在一个hash表的特性,里面不存在相同的两个字符串。此外String对象调用intern()方法时,会先在String table中查找是否存在于该对象相同的字符串,若存在直接返回String table中字符串的引用,若不存在则在原创 2021-02-05 12:19:55 · 178 阅读 · 0 评论 -
JSON转Java POJO就是这么简单快捷(转)
1. 前言作为一名 Java 后端程序员经常会有封装一些调用第三方接口的实际需求。比如胖哥最近对微信支付 V3 的封装。❝https://github.com/NotFound403/payment-spring-boot欢迎 star 哦。大家都明白第三方接口的参数和返回值都是提供方定义好的,我们封装时需要生成自己的POJO类。这种工作没有技术含量不说,还耗时耗力。就拿微信支付新出的商家券参数来举例:{ "stock_name":"8月1日活动券", "belong_merchant"原创 2021-01-28 16:30:18 · 546 阅读 · 1 评论 -
使用LinkedHashMap来实现LRU算法
LRU算法:即淘汰最近最少未使用的请求算法LinkedHashMap中除了具有链表和HashMap的特征之外,还具有实现LRU算法的一些特性。从其源码注解中可以得知:This kind of map is well-suited to building LRU caches. Invoking the {@code put}, {@code putIfAbsent}, {@code get}, {@code getOrDefault}, {@code compute}, {@code compute原创 2020-12-31 10:24:49 · 143 阅读 · 0 评论 -
HashMap自定义存储类型
自定义Person数据类型:package hashmap;import java.util.Objects;public class Person { private Integer age; private String name; public Integer getAge() { return age; } public...原创 2020-04-03 20:03:12 · 480 阅读 · 0 评论 -
集合类模拟斗地主
package collection_test;import java.util.ArrayList;import java.util.Collections;public class DouDiZhu { /* * 斗地主步骤: * 1.准备牌 * 2.洗牌 * 3.发牌 * 4.看牌 * */ public ...原创 2020-02-28 22:00:40 · 194 阅读 · 0 评论 -
泛型通配符的使用
package collection_test;import java.util.ArrayList;import java.util.Iterator;public class GenericDemo2 { /* * 泛型通配符:? * 定义时,不能使用;作为参数传输时,可以使用。 * */ public static void Print...原创 2020-02-28 18:42:42 · 61 阅读 · 1 评论 -
定义和使用含有泛型的类和方法
package collection_test;public class GenericClass<E> { private E name; public E getName() { return name; } public void setName(E name) { this.name = name; ...原创 2020-02-28 17:27:28 · 537 阅读 · 0 评论 -
增强for循环
package collection_test;public class for_forach { public static void main(String[] args) { //增强for循环,专门用来遍历数组和集合 int[] arr = {1,2,3,4,5}; //使用增强for循环来遍历数组,a代表数组中的每个元素 ...原创 2020-02-28 14:06:58 · 71 阅读 · 0 评论 -
Collection集合类的常见用法
package collection_test;import java.util.ArrayList;import java.util.Collection;public class CollectionDemo1 { public static void main(String[] args) { Collection<String> coll = ...原创 2020-02-28 13:43:03 · 109 阅读 · 0 评论 -
迭代器Iterator使用
package collection_test;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class IteratorDemo1 { public static void main(String[] args) { Collect...原创 2020-02-28 13:38:46 · 62 阅读 · 0 评论