list接口,可重复,有序的。list有arrayList,因为是数组结构,适合用在数据的查询,linkedList,因为是链表结构,适合用在增删操作。数组如果增删的话,需要后面的元素都往前或者往后移动,如果是在第一个元素做增删,后面的元素移动量就很大,效率不高。链表如果做查询,需要从第一个元素开始到最后一个,如果查询的元素在最后一个,查询量也很大,效率不高。

set接口,不可重复,无序。treeSet是树数据结构,是有序的,所以treeSet解决了set不能排序的弊端。hashset的数据结构是hash值数据结构,所以是唯一性的。linkedhashset。

map接口,hashtable,同步的不允许null。

     hashmap,不同步,允许key和value值为空。

        treemap,不同步,按key排序,不允许null。

HashMap和ConCurrentHashMap的区别是:后者相当于是把一个Map分成16个HashTable,16个段,对每个段进行加锁,根据要传入key的hash值决定要放入的是哪个hashTable。

LinkedHashSet的内部实现其实就是LinkedHashmap,可以保证数据的有序性,就是存入和取出的顺序是一样的。

LinkedHashMap和HashMap的区别:LinkedHashMap也是一个HashMap,但是内部维持了一个双向链表,可以保持顺序,进入出取出的顺序一样。

数据结构和Java集合的更多相关文章

  1. Java学习笔记——浅谈数据结构与Java集合框架(第一篇、List)

    横看成岭侧成峰,远近高低各不同.不识庐山真面目,只缘身在此山中. --苏轼 这一块儿学的是云里雾里,咱们先从简单的入手.逐渐的拨开迷雾见太阳.本次先做List集合的三个实现类的学习笔记 List特点: ...

  2. Java学习笔记——浅谈数据结构与Java集合框架(第二篇、Queue、Set)

    江南好,何处异京华. 香散翠帘多在水,绿残红叶胜于花.无事避风沙. --<纳兰词> 诗词再好,大图不能忘 上大图: 先说说栈和队列: 栈就好比手枪的弹匣,你往里面压入子弹,最先压入的子弹就 ...

  3. Java学习笔记——浅谈数据结构与Java集合框架(第三篇、Map)

    桃李春风一杯酒,江湖夜雨十年灯 --寄黄几复 之前图上写错了,是Hashtable类.t是小写的,它是个很古老的类,以至于命名都没有那么规范.. HashMap HashMap就是存储key-valu ...

  4. 给jdk写注释系列之jdk1.6容器(13)-总结篇之Java集合与数据结构

         是的,这篇blogs是一个总结篇,最开始的时候我提到过,对于java容器或集合的学习也可以看做是对数据结构的学习与应用.在前面我们分析了很多的java容器,也接触了好多种常用的数据结构,今天 ...

  5. JAVA (集合和数据结构)

    Collection和Collections的区别: 1.java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java 类 ...

  6. Java 集合框架(常用数据结构)

    早在Java 2中之前,Java就提供了特设类.比如:向量(Vector).栈(Stack).字典(Dictionary).哈希表(Hashtable)这些类(数据结构)用来存储和操作对象组.虽然这些 ...

  7. 一起学 Java集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  8. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  9. 深入java集合学习1-集合框架浅析

    前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...

随机推荐

  1. Mysql 表 创建 / 删除(基础3)

    创建表 语法:  #进入数据库 mysql> use mydb123; Database changedmysql> select database();+------------+| d ...

  2. Idea单元测试Junit Generator设置

    0. setting--->plugins--->brose repostories-->输入JUnitGenerator V2.0 1.junit generator自动生成测试代 ...

  3. 安卓下H5弹窗display:table的bug

    表单以弹窗的形式弹出时,若设置了表单的div:display:table下,安卓打开页面输入法的时候,表单顶到屏幕顶部之后,再也无法上滑,键盘遮住了下面的输入框.在ios下,一切显示正常,因为iOS会 ...

  4. Evaluate Reverse Polish Notation (STRING-TYPE CONVERTION)

    Question Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators a ...

  5. [转]github详细教程

    GitHub详解 GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目.它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath ...

  6. jQuery跳转到页面指定位置

    @参考博客 var t = $("#id").offset().top;// 获取需要跳转到标签的top值 //$(window).scrollTop(t);// 跳转到指定位置 ...

  7. swift 4.2 - 根据字符串 push指定控制器

    俩个方法 1. 创建类写成 类方法 import UIKit /* * 注释:获得VC * 1.字符串 和使用的控制器,直接跳转 * 2.用过字符串获得对应VC */ class JYGetPushV ...

  8. ClickHouse高性能数据库

    ClickHouse之简单性能测试   前面的文章ClickHouse之初步认识已经简单的介绍了ClickHouse,接下来进行简单的性能测试.测试数据来源于美国民用航班的数据,从1987年到2017 ...

  9. 6-完美解决Error:SSL peer shut down incorrectly

    转载自: 完美解决Error:SSL peer shut down incorrectly 打开gradle文件夹下的gradle-wrapper文件 修改其中的配置文件将红色区域修改为http:// ...

  10. VIO回顾:从滤波和优化的视角

    https://mp.weixin.qq.com/s/zpZERtWPKljWNAiASBLJxA 根据以上网页自己做的总结: 在机器人社区中,定位与构图问题属于状态估计问题.主流使用的工具可以对给定 ...