java集合
java集合讲解
Sean_徐
不忘初心
展开
-
教你了解红黑树(HashMap 1.8)
一、 二叉树性质若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也分别为二叉查找树。没有键值相等的节点(no duplicate nodes)。二、红黑树性质每个结点要么是红的要么是黑的。根结点是黑的。每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的。如...原创 2018-12-03 11:08:37 · 451 阅读 · 0 评论 -
不要使用foreach循环进行元素的remove/add操作
/** * 不要在 foreach 循环里进行元素的 remove / add 操作。 remove 元素请使用 Iterator * 方式,如果并发操作,需要对 Iterator 对象加锁。 */ public static void main(String[] args) { List<String> list = ne...原创 2019-08-26 09:46:20 · 179 阅读 · 0 评论 -
ArrayList 详解
一、ArrayList 在集合中的位置public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList继承AbstractList抽象父类,实现了List接...原创 2018-11-29 23:33:38 · 311 阅读 · 0 评论 -
HashMap 源码详解(1.7)
一、HashMap初始化 public HashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR); } public HashMap(int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); ...原创 2018-11-23 17:09:58 · 220 阅读 · 0 评论 -
LinkedList 的插入和删除 (双向链表)
LinkedList底层是双向链表的结构,内部维护了3个成员变量,一个是当前链表的头节点,一个是尾部节点,还有是链表长度。双向链表 :有序,可重复 ,插入删除快,查找效率慢。下面我们创建一个LinkedList 集合,看看到底是如何进行插入和删除操作的。插入一个元素 add方法,调用linkLast方法直接看linkLast方法最后一个节点指向l,创建一个Node对象,将我们...原创 2018-11-15 11:42:24 · 6165 阅读 · 0 评论 -
ArrayList 中的contains,indexOf,size方法
当我们要判断ArrayList是否包含某个元素的时候,ArrayList给我们提供了contains方法,返回值为Boolean类型由源码我们可以知道,contains方法底层用的是indexOf方法indexOf 首先会对我们传入的对象进行判断,是否是null,然后循环遍历集合中的元素,当传入的对象和集合元素相等的时候,跳出循环,返回传入对象所在的下标;如果没有找到匹配的就 return...原创 2018-11-14 14:08:56 · 509 阅读 · 0 评论 -
ArrayList clear方法
在ArrayList集合中有一个清空集合的方法 clear,其实就是循环获取集合中的各个元素,然后将其设为null,并将集合长度设为0;原创 2018-11-14 11:04:10 · 5563 阅读 · 0 评论 -
ArrayList 集合中怎么插入元素的
写一个测试方法,创建一个集合,看看到底是怎么执行插入操作的。 public static void test1(){ //创建一个集合 List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(7); ...原创 2018-11-13 17:38:08 · 23698 阅读 · 1 评论 -
ArrayList 中的 remove(int index)方法
首先创建一个集合,然后向集合中插入数据,当我们需要删除集合中的某个元素的时候,List接口为我们提供了remove(Object o)方法.ArrayList继承了AbstractList,实现了List接口,直接调用remove(index)方法,指定需要删除的元素下标,即可完成操作需求。 public static void removeTest(){ ...原创 2018-11-12 18:35:11 · 3286 阅读 · 2 评论 -
Vector
Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess,Cloneable这些接口。Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。Vector实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用...原创 2018-10-25 19:07:39 · 156 阅读 · 0 评论 -
List和Set区别
ListList:可以允许重复的对象。可以插入多个null元素。是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适。ArrayList 底层数组形...原创 2018-10-25 18:37:21 · 1103 阅读 · 0 评论 -
代码检测平台Sonarqube +Sonar Scanner 搭建与部署
一、准备工作1、jdk(1.8及以上)2、SonarQube:http://www.sonarqube.org/downloads/(推荐下载社区版)3、Sonar Scanner:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/4、mysql数据库(5.6至8.0版本)二、安装配置sonar...原创 2019-09-04 11:14:36 · 538 阅读 · 0 评论