1. 集合基础 1.1 集合概述 集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变ArrayList<E> : 可调整大小的数组实现<E>:是一种特殊的数据类型,泛型 1.2 ArrayList的构造方法以及常用方法请参考API JDK9—API汉化版 链接:https://pan.baidu.com/s/1feRNxCYo3Ji2EzcmKUIdcQ 提取码:4321
# 第九章 集合 ## 9.1 Java集合框架 ### 9.1.1 集合接口与实现分离 队列接口最简单实现 ``` public?interface?Queue<E> { ????void?add(E?element); ????E?remove(); ????int?size(); } ``` 队列有两种实现方式,一种是循环数组,另一种是链表 ``` public?class?CircularArrayQueue<E>?implements?Queue<E>{ ????private?int?head; ????private?int?tail; ????CircularArrayQueue(int?capacity){} ????public?void?add(E?element){...
更多java知识,点击了解:https://how2j.cn/k/collection/collection-arraylist/363.html 集合 层次一:针对不同特点的数据,能够选择对应接口的主要的类进行实例化和方法的调用层次二:熟悉接口的不同的实现类的区别、特点层次三:相关接口实现类的底层实现:存储结构若要深刻了解,还是自己去剖析源码,看明白了,就真的懂了,个人也在努力中。集合框架结构 |-----Collection:存储一个一个的数据 |-----List:存储有序的、...
集合分类 collection:单列 (1)List可重复 ArrayList (2)Set不可重复 Map:双列 HashMap 1.3 集合的概述和使用 package demo06Collection;import java.util.Collection; import java.util.ArrayList;public class Demo01Collection {public static void main(String[] args) {Collection<String> co=new ArrayList<>();co.add("hello");co.add("world");System.out.println(co);//[hello, world]//ArrayList重写了toString方法...
一、简介 HashTable也是一种key-value结构,key-value不允许null,并且这个类的几乎全部的方法都加上了synchronized锁,来保证并发安全,由于加了锁所以性能方面会比较低。 二类图public class Hashtable<K,V>extends Dictionary<K,V>implements Map<K,V>, Cloneable, java.io.Serializable也实现了Map接口,继承了java.util.Dictionary类,Dictionary类是一个抽象类,它定义了键映射到值的数据结构。 常用方法 添加单个元素 synch...
#集合 ##集合概述 java集合就像一个容器,这些对象可以是任意的数据类型,且长度可变。集合按照其存储结构可以分为两大类,即单列集合Collection,和双列集合Map。 这两种集合特点如下: (1)Collection:单列集合接口,用于存储一系列元素。 Collection集合有两个重要的子接口,分别是List和Set。其中List集合的特点是元素有序,可重复;Set集合的特点是元素无序并且不可重复。List接口的主要实现类有ArrayList和ListedList;Set...
1.使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的是类型 完全一样的数组,大小就是list.size()。 说明:使用toArray带参方法,入参分配的数组空间不够大时,toArray方法内部将重新分配内存空间, 并返回新数组地址;如果数组元素个数大于实际所需,下标为[ list.size() ]的数组元素将被置为 null,其它数组元素保持原值,因此最好将方法入参数组大小定义与集合元素个数一致。 正例: List<String> list = new Arr...
# java 集合面试## 一.各类集合框架的数据结构总结### 1.Collection接口下的集合#### 1.1List接口- Arraylist: Object[]数组- Vector:Object[]数组- LinkedList: 双向链表(JDK1.6 之前为循环链表,JDK1.7 取消了循环)#### 1.2Set接口- HashSet(无序,唯一): 基于 HashMap 实现的,底层采用 HashMap 来保存元素- LinkedHashSet:LinkedHashSet 是 HashSet 的子类,并且其内部是通过 LinkedHashMap 来实现的。有点类似于我们之前...
目前CSDN,博客园,简书同步发表中,更多精彩欢迎访问我的gitee pages目录JAVA集合2.1 接口继承关系和实现2.2 List2.2.1 ArrayList(数组)2.2.2 Vector(数组实现、线程同步)2.2.3 LinkedList(链表)2.3 Set2.3.1.1 HashSet(Hash 表)2.3.1.2 TreeSet(二叉树)2.3.1.3 LinkedHashSet(HashSet+LinkedHashMap)2.4 Map2.4.1 HashMap(数组+链表+红黑树)2.4.1.1 JAVA7实现2.4.1.2 JAVA8 实现2.4.2 ConcurrentHashMap2.4.2.1 Segm...
Java集合 Java中集合Java中集合类是Java编程中使用最频繁、最方便的类。集合类作为容器类可以存储任何类型的数据,当然也可以结合泛型存储指定的类型(不过泛型仅仅在编译期有效,运行时是会被擦除的)。集合类中存储的仅仅是对象的引用,并不存储对象本身。集合类的容量可以在运行期间进行动态扩展,并且还提供很多很方便的方法,如求集合的并集、交集等。集合类结构Java中的集合包含多种数据结构,如链表、队列、哈希表等。从类的...
1.接口继承关系和实现 集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Iterator:迭代器,可以通过迭代器遍历集合中的数据Map:是映射表的基础接口2.List集合 Java 的 List 是非常常用的数据类型。List 是有序的 Collection。Java List 一共三个实现类:分别是 ArrayList、Vector 和 LinkedList。 2.1. ArrayList(数...
什么是自旋锁和互斥锁? 由于CLH锁是一种自旋锁,那么我们先来看看自旋锁是什么? 自旋锁说白了也是一种互斥锁,只不过没有抢到锁的线程会一直自旋等待锁的释放,处于busy-waiting的状态,此时等待锁的线程不会进入休眠状态,而是一直忙等待浪费CPU周期。因此自旋锁适用于锁占用时间短的场合。 这里谈到了自旋锁,那么我们也顺便说下互斥锁。这里的互斥锁说的是传统意义的互斥锁,就是多个线程并发竞争锁的时候,没有抢到锁的线程会...
前言 大家好,我是囧辉,面试系列开篇:Java 基础高频面试题(2021年最新版),发表后受到不少同学的喜欢。 今天我们继续下一个重要的面试内容:集合框架。HashMap 作为 Java 中最靓的仔,毋庸置疑将是本文的主角。 可能有些同学看过我之前的 HashMap 文章:面试阿里,HashMap 这一篇就够了,会想:辉哥果然又颓废了、堕落了,估计是将之前的内容就照搬过来水一篇,鄙视,取关,不看也罢,*()&*……&*。你们不对劲,你辉哥是这种...
ArrayList和Vector的区别 这两个类都实现了List接口(List接口继承了Collection接口),都是有序集合 1.线程安全 Vector使用了Synchronized来实现线程同步,是线程安全,ArrayList是非线程安全 2.性能 ArrayList在性能方面优于Vector 3.扩容:ArrayList和Vector都会根据实际的需求动态扩容,Vector每次增加1,ArrayList每次增加50% Vector类的所有方法都是同步的。可以由两个线程安全地访问一个Vector对象、但是一个线程访问Vector的话...
一、Map集合的特点 一次添加一对元素,Collection一次添加一个元素。 Map也被称为双列集合,Collection集合称为单列集合。 其实map集合中存储的就是键值对。 map集合中必须保证键的唯一性。 常用的方法: 1.添加value put(key,value); //返回前一个和key关联的值,如果没有,返回null//存相同键时,值会覆盖。 2.删除void clear(); //清空map集合value remove(key); //根据指定的key翻出这个键值对。 3.判断boolean c...