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,它们的父 ...
随机推荐
- php和js中json的编码和解码
php中 1)编码 $jsonStr = json_encode($array) 2)解码 $arr = json_decode($jsonStr) <?php echo json_encode ...
- java web学习总结(九) -------------------通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- SOA的浅析
曾今SOA的概念犹如今日“云计算.大数据”一样,被炒得火热,不少企业便纷纷响应,并宣称会拥抱和实施SOA.而事实上,业界出现了两种极端:一种是由于各类文章和书籍关于SOA的描述往往太过抽象,再加上各大 ...
- JQuery实现一个简单的鼠标跟随提示效果
效果体验:http://hovertree.com/texiao/jsstudy/2/ 实现思路 1 鼠标移入标题(这里是<a>标签) 创建一个div,div的内容为鼠标位置的文本 将创建 ...
- 安卓开发之ListAdapter(一)
Adapter常用来管理数据,是连接后端数据和前端显示的适配器接口,是数据和UI(view)之间一个重要的纽带.再常见的view(listview.gridview)等地方都需要用到adapter,下 ...
- 自动化运维,远程交互从服务器A上ssh到服务器B上,然后执行服务器B上的命令。
第一种: ftp -v -n 192.168.0.1 21 <<! user ftp ftp123 bay ! 第二种: { echo -e "\n" echo -e ...
- ansible使用文档
假设A机器上安装ansible yum install ansible vim /etc/ansible/hosts 对每个主机加key认证ssh-copy-id -i ~/.ssh/id_rsa.p ...
- Linux命令学习总结:cd命令
命令简介: 该命令用来切换当前目录.cd 是change directory 的缩写 命令语法: cd [-L|-P] [dir] 使用示例 1:切换到当前目录的上一级目录 1: [root@DB-S ...
- Linux常用的命令以及一些常见的问题
常用的linux 命令 1查看Linux版本 1.1 查看linux的内核版本 uname -r 或者uname -a 1.2 查看linux的具体版本号 cat /proc/version 1. ...
- window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题
1.应用场景 在Windows或者linux操作系统中,我们在启动一个tomcat服务器时,经常会发现8080端口已经被占用的错误,而我们又不知道如何停止这个tomcat服务器. 2.window环境 ...
