类图

HashSet和TreeSet的区别:https://www.cnblogs.com/bobi1234/p/10759769.html
HashSet和LinkedHashSet区别:https://www.cnblogs.com/bobi1234/p/10759775.html

ArrayList和Vector的区别:https://www.cnblogs.com/bobi1234/p/10759767.html
ArrayList和LinkedList的区别:https://www.cnblogs.com/bobi1234/p/10759765.html

HashMap和Hashtable的区别:https://www.cnblogs.com/bobi1234/p/10759778.html
HashMap和TreeMap的区别:https://www.cnblogs.com/bobi1234/p/10759779.html
HashMap与ConcurrentHashMap的区别:https://www.cnblogs.com/bobi1234/p/10759800.html
HashMap和LinkedHashMap的区别:https://www.cnblogs.com/bobi1234/p/10759823.html

List数据是否可重复、可为空、可为null

public class ListDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("11");
        list.add("22");
        list.add("33");
        list.add("11");
        list.add("");
        list.add(null);
        System.out.println(list);
        List<String> list2 = new LinkedList<>();
        list2.add("11");
        list2.add("22");
        list2.add("33");
        list2.add("11");
        list2.add("");
        list2.add(null);
        System.out.println(list2);
    }
}
[11, 22, 33, 11, , null]
[11, 22, 33, 11, , null]
结论:ArrayList和LinkedList的值可重复、可为空、可为null

Set数据是否可重复、可为空、可为null

public class SetDemo {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("11");
        set.add("22");
        set.add("33");
        set.add("11");
        set.add("");
        set.add(null);
        System.out.println(set);
        Set<String> set2 = new LinkedHashSet<>();
        set2.add("11");
        set2.add("22");
        set2.add("33");
        set2.add("11");
        set2.add("");
        set2.add(null);
        System.out.println(set2);
    }
}
[11, 22, 33, , null]
[11, 22, 33, , null]
结论:HashSet和LinkedHashSet的值不能重复,但可为空,可为null

Map数据是否可重复、可为空、可为null

public class MapDemo {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("语文", 100);
        map.put("数学", 99);
        map.put("语文", 98);
        map.put("", 97);
        map.put(null, 96);
        map.put(null, null);
        System.out.println(map);
        Map<String, Integer> map2 = new TreeMap<>();
        map2.put("语文", 100);
        map2.put("数学", 99);
        map2.put("语文", 98);
        map2.put("", 97);
        map2.put("外语", null);
        // map2.put(null, 96);   NullPointerException
        // map2.put(null, null); NullPointerException
        System.out.println(map2);
    }
}
{=97, null=null, 数学=99, 语文=98}
{=97, 外语=null, 数学=99, 语文=98}
结论:
HashMap的key不可重复,但可为空、可为null,value不做讨论。
TreeMap的key不可重复、不可为null,但可为空,value不做讨论。

Collection和Map类图预览与比较的更多相关文章

  1. 最近发现了个js传图预览的函数和大家分享下

    由于浏览器js沙箱,存在不同域,js无法直接调用电脑文件.在之前做传图预览的时候,基本的思路就是, 将图片先保存到服务器中缓存,然后返回一个服务器路径,并显示出图片,然而这样很耗缓存目录文件的.方法也 ...

  2. FlexPaper+SWFTool+操作类=在线预览PDF

    引言 由于客户有在线预览PDF格式的需求,在网上找了一下解决方案,觉得FlexPaper用起来还是挺方便的,flexpaper是将pdf转换为swf格式的文件预览的,所以flexpaper一般和swf ...

  3. FlexPaper+SWFTool+操作类=在线预览PDF(转)

    引言 由于客户有在线预览PDF格式的需求,在网上找了一下解决方案,觉得FlexPaper用起来还是挺方便的,flexpaper是将pdf转换为swf格式的文件预览的,所以flexpaper一般和swf ...

  4. vue项目中使用bpmn-流程图预览篇

    前情提要 上文已经实现了节点操作的前进.后退.导入.导出等操作,今日来实现“流程图预览”,以及视图的放大缩小 前提:项目安装过bpmn,安装可见上篇文章 实现要点 bpmn提供了两个神器:Modele ...

  5. js多图预览及上传功能

    <%-- Created by IntelliJ IDEA. User: Old Zhang Date: 2018/12/27 Time: 11:17 To change this templa ...

  6. jdk collections map类图

  7. hTML5 多图上传预览

    <p> <label>请选择一个文件:</label> <input type="file" id="file" mu ...

  8. [Asp.net]常见word,excel,ppt,pdf在线预览方案,有图有真相,总有一款适合你!

    引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...

  9. [Asp.net]常见word,excel,ppt,pdf在线预览方案(转)

    引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...

随机推荐

  1. Python----支持向量机SVM

    1.1. SVM介绍 SVM(Support Vector Machines)——支持向量机.其含义是通过支持向量运算的分类器.其中“机”的意思是机器,可以理解为分类器. 1.2. 工作原理 在最大化 ...

  2. Django2 Django MTV模板

    1.MVC模型 Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数据库 ...

  3. 4月23日 MySQL学习-DDL

    今日学习的是DDL的操作(数据定义语言) create table teachers (id int,name varchar(50));//创建一个表 给了两个类型alter table stude ...

  4. [2019.04.16] 由Python写成的自动解压脚本

    很久很久以前(二十七天吧……大概)被要求写一个脚本来检索并解压磁盘上所有的以特定格式命名的tar文件,于是乎学习和摸鱼就一起开始了. 这次要写的脚本,针对的是这样的文件结构: 文件结构如上图所示 可以 ...

  5. 通过10046 event来获取真实的执行计划

    获取SQL执行计划的方式有很多,但是某些时候获取的SQL执行计划并不是准确的,只有在SQL真实执行之后获取到的SQL PLAN才是真实准确的,其他方式(如,explain plan)获取到的执行计划都 ...

  6. 20165223《网络对抗技术》Exp0 Kali的安装

    (1)安装步骤 Kali官网,下载Kali Linux 64 bit版本,按照网上安装教程进行即可 我是直接拷贝了Kali的.vmx文件(Linux 64bit),在上学期已经安装好的VMware中可 ...

  7. 20175221《Java程序设计》第9周学习总结

    20175221   <Java程序设计>第9周学习总结 教材学习内容总结 第十一章主要内容有: MySQL数据库管理系统 下载mysql-8.0.16-winx64 启动MySQL数据库 ...

  8. Vue(小案例_vue+axios仿手机app)_购物车(计算商品总金额)

    一.前言                 1.计算总金额                 2.点击删除按钮,删除对应的商品信息                 3.当还没结算的时候,当用户跳到其他页面 ...

  9. Hibernate日志输出到SLF4J

    一,Hibernate日志问题 工程使用SLF4J,但日志文件一直没有看到Hibernate相关日志及showsql 二,Logback文件配置 修改Hibernate 日志输出指定为SLF4J,当修 ...

  10. JS基础-第1天

    JavaScript 第一天笔记 学习目标 了解Javascript的作用及其组成 掌握变量的使用,知道变量的作用是存储数据 掌握变量的命名规范 掌握 JavaScript 的 5 种简单数据类型 掌 ...