![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合框架
范亚明
慢慢学习,慢慢成长
展开
-
Java基础知识之集合工具类Arrays和Collections
一.Arrays类:常用方法(将数组转换为一个集合):public static List asList(T… a) 等价于public static List asList(T[] a).注意: 通过Arrays.asList方法得到的List对象的长度是固定的,不能增,也不能减.asList方法返回的ArrayList对象,不是java.util.ArrayList而是Arr...原创 2020-04-04 17:17:37 · 170 阅读 · 0 评论 -
浅析HashMap和concurrenthashmap的线程安全问题
一.hash碰撞和解决方案对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰撞冲突解决方案:1.开放地址法开放地执法有一个公式:Hi=(H(key)+di) MOD m i=1,2,…,k(k<=m-1)其中,m为哈希表的表长。di 是产生冲突的时候的增量序列。...原创 2020-04-04 16:42:16 · 229 阅读 · 0 评论 -
Java基础知识之map--常用的实现类(hashMap,TreeMap,LinkedHashMap,Hashtable,Properties)和操作及相关面试题
1原创 2020-04-04 15:55:14 · 267 阅读 · 0 评论 -
Java基础知识之map
1原创 2020-04-04 14:56:22 · 179 阅读 · 0 评论 -
Java基础知识之list和set的区别及相关面试题
1原创 2020-04-04 14:44:26 · 7031 阅读 · 0 评论 -
Java基础知识--集合框架--Set--TreeSet的排序
一.排序概念:TreeSet集合底层才有红黑树算法,会对存储的元素默认使用自然排序(从小到大).注意: 必须保证TreeSet集合中的元素对象是相同的数据类型,否则报错.二.自然排序:自然排序(从小到大):TreeSet调用集合元素的compareTo方法来比较元素的大小关系,然后讲集合元素按照升序排列(从小到大).注意:要求TreeSet集合中元素得实现java.util.Compa...原创 2020-04-04 14:33:22 · 185 阅读 · 0 评论 -
Java基础知识--集合框架--Set及其实现类
一.Set的定义和概念:Set是Collection子接口,模拟了数学上的集的概念。Set集合存储特点:1):不允许元素重复.2):不会记录元素的先后添加顺序.Set只包含从Collection继承的方法,不过Set无法记住添加的顺序,不允许包含重复的元素。当试图添加两个相同元素进Set集合,添加操作失败,add()方法返回false。Set判断两个对象是否相等用**equals,**...原创 2020-04-03 21:45:02 · 179 阅读 · 0 评论 -
Java基础知识之泛型操作和相关面试题
1原创 2020-04-03 20:08:02 · 425 阅读 · 0 评论 -
Java基础知识之集合的迭代操作
一.集合的迭代操作:把集合做的元素一个一个的遍历取出来.二.迭代器对象Iterator: 迭代器对象,只能从上往下迭代.boolean hasNext(); 判断当前指针后是否有下一个元素Object next():获取指针的下一个元素,并且移动指针.ListIterator: 是Iterator接口的子接口,支持双向迭代,从上往下迭代,从下往上迭代.Enumeration...原创 2020-04-03 19:29:33 · 166 阅读 · 0 评论 -
Java基础知识--集合框架--list之Stack类
一.栈(Stack):数据结构的一种,存储特点:Last In First Out.Stack 类表示后进先出(LIFO)的对象栈.栈结构在生活中的体现:1):QQ消息. A,B,C三个人先后发送消息,我们查看的时候发现最顶上的是最新的消息.2):手枪弹夹的装和发射:要来实现栈的存储,底层可以数组来存储,也可以使用链表来存储.二.操作模型图三.源代码:四.常用方法因为操作的...原创 2020-04-01 21:03:32 · 284 阅读 · 0 评论 -
Java基础知识--集合框架--list之Vector类
一.介绍在JDK2之前(在Java的集合框架之前),要存储多个数据,此时存在一个叫Vector类.Vector类底层其实就是一个Object数组,Vector类中的方法是支持同步(方法使用synchronized修饰)的.二.vector的设计原理(查看源代码):三.Vector类存储原理:通过源码分析,发现在Vector类中有一个Object[]类型数组.protected Obj...原创 2020-04-01 20:43:12 · 138 阅读 · 0 评论 -
Java基础知识之集合框架的概述
一.Java集合框架的由来:其实在Java2(jdk1.2)之前,Java是没有完整的集合框架的。它只有一些简单的可以自扩展的容器类,比如Vector,Stack,Hashtable等。为什么存在容器类: 容器类(集合类)可以存储多个数据,既然数组可以存储多个数据,为什么需要定义容器类.数组的弊端:1):长度是不可变的,一旦数组初始化之后,长度是固定的.2):在N个地方需要存储多个数据,...原创 2020-04-01 18:23:54 · 142 阅读 · 0 评论 -
Java基础知识之ArrayList和LinkedList的比较
一.基本概念:首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:(1)存储结构ArrayList和Vector:是按照顺序将元素存储,删除元素时,删除操作完成后,需要使部分元素移位,默认的初始容量都是10.ArrayLi...原创 2020-04-01 18:02:17 · 139 阅读 · 0 评论