Java集合大总结

java集合框架简图(API关系图):

虚线框表示接口,实线框表示类.

特点和使用总结:

Collection:

  • 单列单值.

List:

  • 有序(查询顺序和插入顺序一致),有下标(索引),元素允许重复.

ArrayList:

  • 地测是动态数组数据结构,在内存中挨着连续开辟空间,查询快,增删慢.

LinkedList:

  • 底层是数据链表结构,在内存中不挨着,不连续开辟空间,查询慢,增删快.

Set/HashSet:

  • 无序(查询顺序和插入顺序不一致),无下标(索引),元素不允许重复,底层是Hash表

TreeSet:

  • 无序,没有索引,不允许重复,可以对元素进行排序,底层是红黑树

Map/HashMap:

  • 双列双值,无序(查询顺序和插入顺序不一致),误下标(索引),键不允许重复,值允许重复,键值是一一对应的,叫键值对,java中叫做Entry对象,底层是Hash表数据结构

TreeMap:

  • 可以对键进行排序,底层是红黑树

实际开发中如何选择用哪一种集合?

  • 根据集合特点来选择,实际开发中多用ArrayList,HashSet,HashMap

使用总结:

  • HashSet,HashMap如果要求属性相同才认为是同一个对象,那么要哦重写HashCode和equals方法

  • TreeSet,TreeMap如果存储自定义类型,要指定排序规则.要么使用自然排序,要么使用比较器排序

Collection API总结:

Map API总结:

集合遍历总结:

  • List集合:

    • 通过toArray方法把集合转换为数组

    • 普通for循环结婚get(索引)方法

    • forEach/迭代器

  • Set集合:

    • 通过toArray将集合转换为数组

    • forEach/迭代器

  • Map集合:

    • 拿到每一个键,KeySet,对每一个键进行遍历,通过建调用get(键)找到值

    • 拿到每一个Entry对象,EntrySet,通过遍历Entry对象获取每一个键和值

    • 实际中该用哪种遍历集合呢?

      拿到每一个Entry对象

      Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); for(Map.Entry<String, Integer> en : entrySet) { System.out.println(en.getKey() + "=" + en.getValue()); }

java集合大总结的更多相关文章

  1. Java集合Map基本方法

    jdk1.7 api中的方法摘要: 参考java集合大全图:https://www.cnblogs.com/xkzhangsanx/p/10889114.html Map为所有Map子类的接口.

  2. Java集合Collection基本方法

    jdk1.7 api中的方法摘要: 参考java集合大全图:https://www.cnblogs.com/xkzhangsanx/p/10889114.html Collection为List.Se ...

  3. 面霸篇:Java 集合容器大满贯(卷二)

    面霸篇,从面试角度作为切入点提升大家的 Java 内功,所谓根基不牢,地动山摇. 码哥在 <Redis 系列>的开篇 Redis 为什么这么快中说过:学习一个技术,通常只接触了零散的技术点 ...

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

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

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

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

  6. Java 集合框架

    Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...

  7. 深入java集合系列文章

    搞懂java的相关集合实现原理,对技术上有很大的提高,网上有一系列文章对java中的集合做了深入的分析, 先转载记录下 深入Java集合学习系列 Java 集合系列目录(Category) HashM ...

  8. Java集合---Array类源码解析

    Java集合---Array类源码解析              ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Prim ...

  9. (转)Java集合框架:HashMap

    来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...

随机推荐

  1. How tomcat works(深入剖析tomcat)阅读笔记1-4章

    How tomcat works chapter 1 简单的web服务器 这一张的主要内容就是实现一个简单的静态资源服务器,socket编程,利用java提供的socket和serverSocket编 ...

  2. Error:Execution failed for task ':app:compileDebugAidl'. > java.lang.IllegalStateException: aidl is missing from '/Users/renguodong/Library/Android/sdk/build-tools/26.0.2/aidl'

    错误信息:Error:Execution failed for task ':app:compileDebugAidl'. > java.lang.IllegalStateException: ...

  3. 【NOIP2017提高A组模拟9.17】组合数问题

    [NOIP2017提高A组模拟9.17]组合数问题 题目 Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数. 举个例子,将{1,2,3}拆分成2 个 ...

  4. MongoTemplate 移除 _class 字段

    @Configuration public class ApplicationReadyListener implements ApplicationListener<ContextRefres ...

  5. Cypress系列(101)- intercept() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 使用该命令在网络层管理 HTTP ...

  6. 第3.5节 丰富的Python字典操作

    一. 基本概念 Python提供一种通过名称来访问其各个值的数据结构,这种数据结构称为映射(mapping).字典(dict)是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下, ...

  7. PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件概述和属性介绍

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 TabWidget选项卡组件是一个带一到多个选项卡栏和对应页面区域的组件,对应类QTabW ...

  8. MapReduce简单执行过程及Wordcount案例

    MapReducer运行过程 以单词统计为案例. 假如现在文件中存在如下内容: aa bb aa cc dd aa 当然,这是小文件,如果文件大小较大时会将文件进行 "切片" ,此 ...

  9. fedora版本如何升级

    自动升级 sudo dnf update --refresh # 更新系统包 sudo dnf install dnf-plugin-system-upgrade # 安装系统更新插件 sudo dn ...

  10. kubernetes 中的证书工作机制

    一文带你彻底厘清 Kubernetes 中的证书工作机制 搬砖者: 张首富 时 间: 2020-05-26 w x: y18163201 原文地址:https://zhaohuabing.com/po ...