Java的容器类Collection和Map
一,概念
JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。
java的容器类一共有两种主要类型,Colllection和Map。
两者的区别是:Collection是单个元素,而Map是存储一个键值对
两者的子类关系如下图所示:
二,子类介绍
1,Collection的子类如下:
- List:将以特定次序存储元素,所以取出来的顺序可能和放入的顺序不同
- ArrayList:擅长随机访问元素,但在List中间插入,删除,移动元素较慢
- LinkedList,插入,删除,移动元素方便,随机访问元素差
- Set:每个值只能保存一个对象,不能包含重复的元素
- HashSet:使用散列数
- TreeSet:使用红黑树
- LinkedHashSet:使用离岸边结合散列函数
2,Map的子类有以下三个
- HashMap
- HashTable
- TreeMap
三,其他特征
- List,Set,Map将所有的对象一律视为Object类型
- Collection,List,Set,Map都是接口,不能实例化。继承自他们的ArrayList,HashTable,HashMap等是具体类,这些才能被实例化
- 关于Clooections,值针对集合类的一个帮助类,提供一系列静态方法来实现对集合的搜索,排序,线程安全化等操作,相当于array进行类似操作的类Arrays
四,如何选择容器
- 在各种List中,最好的是以ArrayList作为默认选择,当插入,删除频繁时,使用LinkedList().
- 在各种Set中,HashSet通常由于HashTree(插入,查找),只是当需要排序是,才用TreeSet
- 在各种Map中,HashMap用于快速查找
- 当元素固定时,最好使用Array,因为Array的效率是最高的。
五,HashMap和HashTable的区别
相同点:都继承了Map接口的类
不同点:
HashMap类没有分类或者排序,她允许一个null键和多个null值
HashTable和HashMap一样,但是不允许null键和null值,他比hashMap慢,因为它是同步的
hashTable的是contains方法,而hashmap的是containskey和containsvalue方法
Map遍历
for(Map.Entry<string,string> entry:map.entrySet){
system.out.printf(entry.getValue());
}
Java的容器类Collection和Map的更多相关文章
- JAVA 中的 Collection 和 Map 以及相关派生类的概念
JAVA中Collection接口和Map接口的主要实现类 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的 ...
- Java 8中Collection转为Map的方法
Java 8中java.util.stream.Collectors提供了几个方法可用于把Collection转为Map结构,本文记录了个人对其中三个的理解. Method Return Type g ...
- java Iterator Iterable Collection AbstractCollection Map关系
java.lang Interface Iterable<T> 实现该接口就可以使用for-each循环. java.util Interface Iterator<E> ...
- java中关于Collection和Map相关的类&接口之间的关系
上图(引用自)
- 【Java】集合概述Collection、Map
Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...
- Java基础 @org.junit.Test-单元测试方法 + 操纵Collection和Map的工具类 : Collections 的sort/binarySearch/max/min等静态方法
单元测试代码: ( 在IDEA中先输入'@Test '然后根据提示进行自动修订即可!!运行时直接运行即可! 若有多个单元测试块的时候,直接把鼠标放在哪里就自动在哪里运行那个单元块) import ...
- 【转】java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
原文网址:http://www.360doc.com/content/15/0427/22/1709014_466468021.shtml java 容器类使用 Collection,Map,Hash ...
- Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable
Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable接口,泛型 Collection,List,Se ...
- JAVA集合详解(Collection和Map接口)
原文地址http://blog.csdn.net/lioncode/article/details/8673391 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父 ...
随机推荐
- 关于Spring/Hibernate 3.x升级4.x的小问题
情景: 之前版本 现在版本 JDK 1.7 1.8 Tomcat v7.0 v8.0 Spring 3.x 4.x Hibernate 3.x 4.x MySQL 忘了 5.1.53 分析: 如果 ...
- jquery 格式化系统时间
Date.prototype.Format = function (fmt) { //javascript时间日期函数 var o = { "M+": this.getMonth( ...
- git的使用以及github
现在公司使用的是svn,然而,技多不压身,现在学习一下github http://blog.csdn.net/llf369477769/article/details/51917557这篇博客总结的很 ...
- ABP中使用Redis Cache(1)
本文将讲解如何在ABP中使用Redis Cache以及使用过程中遇到的各种问题.下面就直接讲解使用步骤,Redis环境的搭建请直接网上搜索. 使用步骤: 一.ABP环境搭建 到http://www.a ...
- HttpClient在HTTP协议接口测试中的使用
TTP协议的接口测试中,使用到最多的就是GET请求与POST请求,其中POST请求有FORM参数提交请求与RAW请求,下面我将结合HttpClient来实现一下这三种形式: 一.GET请求: GET请 ...
- tomcat 自定义classpath(亲自测试)
因为一直以来使用tomcat和weblogic作为应用服务器为主,最近在升级新中间件的过程中遇到一个问题,我们的web前端应用现在升级是进行全量包升级的,因为现在的系统架构为前端和后端通过rpc框架交 ...
- 【grunt第一弹】30分钟学会使用grunt打包前端代码
前言 以现在前端js激增的态势,一个项目下来几十个js文件轻轻松松对于复杂一点的单页应用来说,文件上百简直是家常便饭,那么这个时候我们的js文件应该怎么处理呢?另外,对于css文件,又该如何处理呢?? ...
- 码代码新神器-Github Atom
周末闲着没事,逛论坛发现了一个新的编辑器,由github发布的Atom编辑器.瞬间被吸引了,所以就去尝试着折腾了一下,后来发现这个编辑器确实很不错,他的特点就是两个字:优美!!! 下载地址,官方网站下 ...
- jQuery对表单、表格的操作及更多应用
<head> <style type="text/css"> .even { background-color: #fff38f;/*偶数行样式*/ ...
- jquery实现导航图轮播
版权声明:作者原创,转载请注明出处! 下面的几个栗子是使用jquery实现Banner轮播的效果,直接将代码贴出来,从最初级没有任何优化和封装的写法,一直到最后一个栗子,一步步进行了优化,加大程序的可 ...
