java之集合容器(Collection,Map)
首先我们要了解什么是集合?
正所谓容器,比如说杯子是装水的容器,衣柜是装衣服的容器,那么集合就是装数据的容器。
集合有什么特点呢?
1.集合长度是可变的
2.集合用来存储对象
集合和数组有什么区别呢?
1.数组用可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型。
2.数组长度一旦定义就不可变了,集合长度是可变的。
3.数组只能存储同一种类型的数据,集合可以存储多种类型的对象。
常用的集合有哪些呢?
集合分为两种Collection和Map
Collection下面的接口有List和Set,Map的实现类有HashMap,Hashtable,TreeMap,LinkedHashMap,ConcurrentMap
List接口的实现类有ArrayList和LinkedList和Vector
Set接口的实现类有HashSet,LinkedHashSet,TreeSet
那么List,Set,Map之间有什么区别呢?
List是有序的,可重复的
Set是无序的,不可重复的
Map存储的是键值对(key-value),key是无序的,不可重复的,value是无序的,可重复的
集合框架的底层数据结构分别是什么呢?
ArrayList:Object类型的数组
vector:Object类型的数组
LinkedList:双向循环链表
TreeSet:红黑树
HashSet:基于HashMap实现的
LinkedHashSet:基于LinkedHashMap实现的
TreeMap:红黑树
HashMap:在jdk8以前用数组+链表,jdk8以后也是数组+链表但是当链表长度大于8时,链表会转化成红黑树(这样的话查找效率会增加)
LinkedHashMap:和HashMap相同,唯一添加的就是双向链表,这样使得它可以顺序存储,也可以进行顺序操作
Hashtable:数组+链表
那些集合是线程安全的?
1.vector
2.堆栈类
3.Hashtable(底层方法都加了synchronize)
如何确保集合不被修改?
建立一个只读集合使用Collections.unmodifiableCollection(list)
什么是迭代器,如何使用
Iterator:可以遍历任何Collection接口
使用:
List<String> list = new ArrayList<String>;
Iterator<String> it = list.iterator();
while(it.hasNext){
String its = it.Next();
System.out.println(its)
}
如何边遍历边移出
List<String> list = new ArrayList<String>;
Iterator<String> it = list.iterator();
while(it.hasNext){
it.remove();
}
Iterator和ListIterator有什么区别
1.前者可以遍历List和Set,后者只能遍历List
2.前者只能单向遍历,后者可以双向遍历
随后分别介绍各种集合
Collection接口
1.List接口
ArrayList的优缺点
优点:底层数组实现,查找快
顺序添加元素方便
缺点:插入和删除元素时候,需要做一次复制操作,耗费性能
如何实现数组和List之间的转换
数组->List: Arrays.asList(array)
List->数组: list.toArray()
java之集合容器(Collection,Map)的更多相关文章
- Java中集合List,Map和Set的区别
Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...
- Java中集合List,Map和Set的差别
Java中集合List,Map和Set的差别 1.List和Set的父接口是Collection.而Map不是 2.List中的元素是有序的,能够反复的 3.Map是Key-Value映射关系,且Ke ...
- 【Java】集合概述Collection、Map
Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...
- 十七、Java基础---------集合框架之Map
前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...
- Java各种集合容器的总结
Java容器指的是List,Set,Map这些类.由于翻译的问题,问到集合,Collection这些指的都是它们几个. List ArrayList 随机访问快 LinkedList 插入删除快 这个 ...
- java学习——集合框架(Collection,List,Set)
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储. 集合特点:1,用于存储对象的容器.2,集合的长度是可变的.3,集合中不可以存储基本数据类型值. ...
- Java:集合,Collection接口框架图
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...
- Java自学-集合框架 Collection
Java集合框架 Collection Collection是一个接口 步骤 1 : Collection Collection是 Set List Queue和 Deque的接口 Queue: 先进 ...
- [Java复习] 集合框架 Collection
Q1 Collection java的集合以及集合之间的继承关系? 数组和链表的区别? 固定长度,连续内存,不能扩展,随机访问快,插入删除慢.链表相反 List, Set, Map的区别? List, ...
随机推荐
- [go语言]-深入理解singleflight
目录 前言 singleflight使用场景 singleflight 简介 singleflight的使用 从singleflight的test最简单用法 验证并发重复请求 singleflight ...
- Java基础一篇过(七)Java8--stream流
一.简介 流(stream)也是Java8的一个重要的新特性,主要是对集合(Collector)功能的增强:在上一篇文章我们简单的了解了lambda表达式,现在我们学习下流的概念:使用流可以帮助我们做 ...
- Java Web学习(二)数据加密
一.Tomcat 体系 首先通过一幅图来了解下tomcat的运行体系: Tomcat服务器的启动是基于一个server.xml文件的. 启动流程: 首先启动一个Server,Server里面就会启动S ...
- Oracle添加键值对盲注
前言 遇到一种注入点,存在于POST参数中,却不能用sqlmap扫出: 分析 request参数格式: %24Q_value1=test1&orderCol=&order=+ASC+& ...
- 从CPU缓存看缓存的套路
一.前言 不同存储技术的访问时间差异很大,从 计算机层次结构 可知,通常情况下,从高层往底层走,存储设备变得更慢.更便宜同时体积也会更大,CPU 和内存之间的速度存在着巨大的差异,此时就会想到计算机科 ...
- 俯瞰 Java 服务端开发
原文首发于 github ,欢迎 star . Java 服务端开发是一个非常宽广的领域,要概括其全貌,即使是几本书也讲不完,该文将会提到许多的技术及工具,但不会深入去讲解,旨在以一个俯瞰的视角去探寻 ...
- 细嚼JS闭包知识点及案例分析
闭包是js开发惯用的技巧,什么是闭包? 闭包指的是:能够访问另一个函数作用域的变量的函数.清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量.默认闭包的this指向windows. ...
- ES 入门 - 基于词项的查询
准备 首先先声明下,我这里使用的 ES 版本 5.2.0. 为了便于理解,这里以如下 index 为格式,该格式是通过 PMACCT 抓取的 netflow 流量信息, 文中所涉及的到的例子,全基于此 ...
- Unicode、UTF8、GB2312、ANSI
来源:https://blog.csdn.net/osanwenyu/article/details/48439461 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原 ...
- JVM 第四篇:可视化 JVM 故障处理工具
本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 可视化工具 在 JDK 中为我们提供了大量的 JVM 故障处理工具,都在 JDK 的 bin 目录下: 这其中除了大量的命令行工具以外,还 ...