集合框架

集合框架的目标

  • 该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现必须是高效的。
  • 该框架允许 不同类型的集合,以类似的方式工作,具有高度的互操作性。
  • 对一个集合的扩展和适应必须是简单。

设计理解

整个框架都是围绕一组标准接口而设计。

可以直接实现这些标准的接口。

LinkedListHashSetTreeSetArrayListHashMapVector 等等,具体在此包下

分析java.util.此包下接口和类,都有些什么东西?

1、Collection 接口有3种子类型,List、Set和Queue;

2、下面是一些抽象类;

3、最后是具体实现类,常用的有

ArrayList和LinkedListHashSet和LinkedHashSetHashMap和LinkedHashMap

1550569230502

谈谈个人理解

Set和List的区别

  • 1、Set是无序的,数据是不重复的。List 是有序的,数据是可以重复的元素。
  • 2、Set 的查询效率低,但是删除和插入效率高。
  • 3、List 查询效率高,插入删除效率低。

为什么Set 存储是无序?

答:个人理解,因为数据不重复,自带去重,不会引起元素位置变化

为什么List 存储是有序?

答:个人理解,因为是按元素add顺序添加的,对添加元素内容不做过滤,所以会有重复数据

为什么Set 查询效率低?

答:个人理解,因为插入和删除不会引起元素位置改变,所以Set是无序的,又因为无序所以查询效率低。

为什么List查询效率高?

答:个人理解,因为插入和删除会引起其他元素位置改变,所以插入删除效率低,又因为List是有序的,所以查询效率高。

总结

Java 集合框架 为开发使用提供一套性能优良,使用方便的api接口。

Java集合框架学习的更多相关文章

  1. Java集合框架学习(一)List

    先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...

  2. 【java基础 11】java集合框架学习

    导读:本篇博客主要是从整体上了解java的集合框架,然后主要介绍几个自己在项目中用到的结构,比如说:hashtable.hashmap.hashset.arraylist等! 一.宏观预览 从宏观上看 ...

  3. Java集合框架学习笔记

    集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的长度不确定,就使用集合存储. 集合特点1.用于存储对象的容器.2.集合的长度可变.3.集合中不可以存储基本类型 集合容器因为内部的数据结 ...

  4. Java集合框架学习总结

    转自:http://www.cnblogs.com/oubo/archive/2012/01/07/2394639.html Oubo的博客 以下介绍经常使用的集合类,这里不介绍集合类的使用方法,只介 ...

  5. Java集合框架(Collection Framework)学习之 Collection与Map概貌

    写过Java的人都知道Java集合类,也用过Java集合类.Java集合类位于 java.util 这个包下,就像它的包名暗示的那样,Java集合类就是一套工具.它就像工匠的工具箱一样,它能给使用它的 ...

  6. Java 集合框架

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

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

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

  8. Java集合框架使用总结

    Java集合框架使用总结 前言:本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看JavaAPI文档. 一.概述数据结 ...

  9. Java集合框架面试题

    www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架 ...

随机推荐

  1. 架构(三)MongoDB安装配置以及集群搭建

    一 安装 1.1 下载MongoDB 我个人不太喜欢用wget url, 之前出现过wget下载的包有问题的情况 https://fastdl.mongodb.org/linux/mongodb-li ...

  2. [编译] 2、minGW gcc在windows搭建编译win32程序环境

    1.普通下载一个MinGW程序.安装之后可以直接将MinGW目录拷贝到总工程的tool里面: demo_mesh_common tree -L 2 . ├── app ├── bin ├── buil ...

  3. 算法与数据结构(一) 线性表的顺序存储与链式存储(Swift版)

    温故而知新,在接下来的几篇博客中,将会系统的对数据结构的相关内容进行回顾并总结.数据结构乃编程的基础呢,还是要不时拿出来翻一翻回顾一下.当然数据结构相关博客中我们以Swift语言来实现.因为Swift ...

  4. sublimeText3编辑器 + 入门教程 + 使用大全

    sublimeText3编辑器 + 入门教程 + 使用大全 Ctrl+D选中光标所占的文本,继续操作则会选中下一个相同的的文本 ctrl+G:输入行号,可快速跳转该行 ctrl+p:输入冒号,在输入行 ...

  5. Shell中for循环的几个常用写法

    第一类:数字性循环-----------------------------for1-1.sh #!/bin/bash ;i<=;i++)); do echo $(expr $i \* + ); ...

  6. 神奇的CSS3混合模式

    神奇的css3混合模式 对于前端开发人员应该都很熟悉Photoshop的图层混合模式,就是几个图层按不同的模式进行混合,实现不同的图像效果.但是当我们前端同学在切这些效果图的时候,基本上就是一刀切的, ...

  7. mysql 开发进阶篇系列 9 锁问题 (Innodb 行锁实现方式)

    一.概述 Innodb 行锁是通过给索引上的索引项加锁来实现的.这一点与(oracle,sql server)不同后者是通过在数据块中对相应的数据行加锁.这意味着只有通过索引条件检索数据,innodb ...

  8. Python—UI自动化完整实战

    实战项目 均来源于互联网 测试报告2017年11月29日优化后的测试报告:https://github.com/defnngj/HTMLTestRunner 1.项目概述: 本实战已126邮箱为例子进 ...

  9. 函数式编程之-拒绝空引用异常(Option类型)

    众多语言都会设计Option类型,例如Java 8和Swift都设计了Optional类型.其实这种类型早就出现在了函数式语言中,在OCaml和Scala中叫Option,在Haskell中叫Mayb ...

  10. 将Long类型字节大小数据转换成标准的视频大小格式

    很多时候针对视频信息,数据库中存储的视频大小是字节类型,然后我们在页面中显示则需要使用的是标准的视频大小显示格式,我这里工具类最多显示的是Mb,如果需求要显示G的话可自行参照修改. 直接上工具类和测试 ...