List和Set区别

  List和Set都是继承Collection接口

  List特点:元素有放入顺序,元素可重复

  Set特点:元素无放入顺序,元素不可重复

  Set和List对比:

    Set:检索元素效率低下,删除和插入效率高,其删除和插入操作不会引起元素位置的改变。

    List:和数组类似,List可以动态增长,查找元素效率高,插入删除效率低,因为它会引起其他元素的位置改变。

List和Map区别

  List是对象集合,允许对象重复。

  Map是键值对集合,Key不允许重复。

Arraylist和Linkedlist区别

  Arraylist

    优点:Arraylist是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高

    缺点:因为地址连续,Arraylist要移动数据,所以插入和删除操作效率比较低。

  LinkedList:

    优点:Linkedlist是基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址。因此对于新增和删除操作方面是比较有优势的。Linkedlist适用于头尾操作或插入指定位置的场景。

    缺点:因为Linkedlist要移动指针,所以查询性能操作比较低。

  适用场景:

    当需要对数据进行对此访问的情况下选用ArrayList,当需要对数据进行多次增加删除和修改的时候采用Linkedlist

Arraylist和Vector区别

  1. Vector是多线程安全的,线程安全就是说多线程访问同一代码,不会产生不确定的结果。而ArrayList不是,这个可以从源码中看出,Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;

  2. 两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同。

  3. Vector可以设置增长因子,而ArrayList不可以。

  4. Vector是一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。

HashMap和Hashtable的区别

  1、HashMap去掉了Hashtable的contains方法,但增加了containsValue、containsKey方法。

  2、Hashtable是同步的,而HashMap是非同步的,效率上比Hashtable要高。

  3、HashMap允许键值为空,而Hashtable不允许。

  4、HashMap适用于Map中插入、删除和定位元素。

  5、TreeMap适用于自然顺序或自定义顺序遍历键。

HashSet 和 HashMap的区别

  1、HashSet是set的hash实现,hashset中的值不能重复是通过hashmap的key来实现的。

  2、HashMap是map接口的hash实现,key的唯一性是通过key值hash值的唯一来确定的。

HashMap 和 ConcurrentHashMap 的区别

  1、ConcurrentHashMap是线程安全的HashMap的实现。它对数组进行了分割分段(Segment),然后在每一个分段上都用lock锁进行保护。而HashMap没有锁保护。

  2、HashMap的键值对允许有null,但ConcurrentHashMap不允许。

Java基础知识盘点(二)- 集合篇的更多相关文章

  1. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  2. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

  3. java基础知识(二)-----多态和构造函数

    一:前言 最近由于面试了新浪公司,面试官问我的问题我都不知道,觉得自己好菜,所以最近决定再把java基础给搞一遍,真的觉得自己好菜.每天看一点,那个家伙说<java编程思想>最少要看三遍, ...

  4. Java基础知识强化之集合框架笔记39:Set集合之HashSet存储字符串并遍历

    1. HashSet类的概述: (1)不保证set的迭代顺序 (2)特别是它不保证该顺序恒久不变 HashSet底层数据结构是哈希表,哈希表依赖于哈希值存储,通过哈希值来确定元素的位置,  而保证元素 ...

  5. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

  6. Java基础知识强化之集合框架笔记07:Collection集合的遍历之迭代器遍历

    1. Collection的迭代器: Iterator iterator():迭代器,集合的专用遍历方式 2. 代码示例: package cn.itcast_03; import java.util ...

  7. Java基础知识强化之集合框架笔记05:Collection集合的遍历

    1.Collection集合的遍历 Collection集合直接是不能遍历的,所以我们要间接方式才能遍历,我们知道数组Array方便实现变量,我们可以这样: 使用Object[]  toArray() ...

  8. Java基础知识盘点(三)- 线程篇

    创建线程的方式及实现 一.继承Thread类创建线程类 1.定义Thread的子类,并重写run方法,因为该方法的方法体就是代表了线程要完成的任务,因此run方法又叫做执行体. 2.创建Thread子 ...

  9. Java基础知识盘点(一)- 基础篇

    基本功 面向对象特征 封装.继承.多态和抽象 1.封装:给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法,来改变它内部的数据. 在Java中,其访问权限有3种修饰符:publi ...

随机推荐

  1. MVC Views文件夹下js无法访问问题解决方案

    出现这个问题是因为webconfig做的限制,可修改相应Views下的webconfig文件来解决. <system.webServer> <handlers> <rem ...

  2. coreseek/sphinx中的匹配模式

    所谓匹配模式就是用户怎样依据keyword在索引库中查找相关的记录. SPH_MATCH_ALL, 匹配全部查询分词(默认模式); 如"手机配件".不匹配 "我有一部手机 ...

  3. Freeswitch配置之sofia

    SIP模块 - mod_sofia SIP 模块是 FreeSWITCH的主要模块. 在 FreeSWITCH中,实现一些互联协议接口的模块称为 Endpoint.FreeSWITH支持很多的 End ...

  4. ORA-27300 ORA-27301 ORA-27302 skgpspawn3 CRS-2674

    oracle@WWJD-DB1:~> $ORACLE_HOME/bin/srvctl start database -d ndscdb PRCR-1079 : Failed to start r ...

  5. 测试12.2.0.1RAC PDB级别的Failover

    关键步骤:手工添加服务名A并启动(已验证默认的服务名测试验证无法实现Failover) [oracle@db90 ~]$ srvctl add service -db orcl -service A ...

  6. CF830A Office Keys(贪心)

    CF830A Office Keys [题目链接]CF830A Office Keys [题目类型]贪心 &题意: 有n个人,k个钥匙,一个目的地,求让n个人都回到目的地的最短时间,每个人都要 ...

  7. 编程规范(初尝ES6与webpack)

    //针对ES6规范(第1-5条)start1.块级作用域let/const取代var:在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量. 2.解构赋值1 ...

  8. JVM内存回收机制——哪些内存需要被回收(JVM学习系列2)

    上一篇文章中讨论了Java内存运行时的各个区域,其中程序计数器.虚拟机栈.本地方法栈随线程生灭,且创建时需要多少内存,基本上在译期间就决定的了,所以在内存回收时无需特殊的关注.而堆和方法区则不同,首先 ...

  9. java基础5 (一维)数组和二维数组

    本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等))    二维数组(二维数组的遍历.排序.查找.定义. ...

  10. python爬虫,爬取一系列新闻

    这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2941. 由于存在多次请求,所以稍微将请求封装如下 def tr ...