李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
持有对象--容器的打印
Leefs
2019-11-28 AM
4016℃
2条
# 持有对象--容器的打印 ### 前言 本篇将介绍《Java编程思想》第11.4节,容器的打印 ### 一、容器的打印 你必须使用`Arrays.toString()`来产生数组的可打印表示,但是打印容器无需任何帮助。下面是一个例子,这个例子中也介绍了一些基本类型的容器: ```java public class PrintingContainers { static Collection fill(Collection
collection){ collection.add("rat"); collection.add("cat"); collection.add("dog"); collection.add("dog"); return collection; } static Map fill(Map
map){ map.put("rat","Fuzzy"); map.put("cat","Rags"); map.put("dog","Bosco"); map.put("dog","Spot"); return map; } public static void main(String[] args){ System.out.println(fill(new ArrayList
())); System.out.println(fill(new LinkedList
())); System.out.println(fill(new HashSet
())); System.out.println(fill(new TreeSet
())); System.out.println(fill(new LinkedHashMap
())); System.out.println(fill(new HashMap
())); System.out.println(fill(new TreeMap
())); System.out.println(fill(new LinkedHashMap
())); } } ``` > 运行结果 ```java [rat, cat, dog, dog] [rat, cat, dog, dog] [rat, cat, dog] [cat, dog, rat] {rat=Fuzzy, cat=Rags, dog=Spot} {rat=Fuzzy, cat=Rags, dog=Spot} {cat=Rags, dog=Spot, rat=Fuzzy} {rat=Fuzzy, cat=Rags, dog=Spot} ``` > - `ArrayList`:插入顺序和输出顺序一致,可以重复 > - `LinkedList`:插入顺序和输出顺序一致,可以重复 > - `HashSet`:插入顺序和输出顺序不一致,不重复 > - `TreeSet`:插入顺序和输出顺序不一致,不重复 > - `HashMap`:键值对存储,键不重复。 > - `TreeMap`:键值对存储,键不重复。 > - `LinkedHashMap`:键值对存储,键不重复。 这里展示了`java`容器类库的两种主要类型,它们的区别在于容器中每个“槽”保存的元素个数。 Collection:在每个槽中只能保存一个元素,此类容器包括: > List:以特定的顺序保存一组元素 > > Set:元素不能重复 > > Queue:只允许在容器的一“端”插入对象,并从另外一“端”移除对象 Map:在每个槽内保存了两个对象,即键和与之相关联的值 查看输出发现,默认的打印星期即可生成可读性很好的结果。**Collection打印出来的内容用方括号括住,每个元素由逗号分隔。Map则用大括号括住,键和值由等号联系。** 第一个fill()方法可以作用于所有类型的Collection,这些类型都实现了用来添加新元素的add()方法。 Map(也被称为关联数组)使得你可以用键来查找对象,就像一个简单的数据库。键所关联的对象称为值。对于每个键,Map只接受存储一次。 `Map.put(key,value)`方法将增加一个值,`Map.get(key)`方法将产生与这个键相关联的值。注意,不必考虑Map尺寸,因为它自己会自动地调整尺寸。Map还知道如何打印自己,它会显示相关联的键和值。键和值在Map中保存的顺序并不是它们插入的顺序,因为`HashMap`实现使用的是一种非常快的算法(LRU算法,近期最少使用算法)来控制顺序。 **`HashMap`、`TreeMap`和`LinkedHashMap`比较** 与`HashSet`一样,`HashMap`也提供了最快的查找技术,也没有按照任何明显的顺序来保存其元素。`TreeMap`按照比较结果的升序保存键,而`LinkedHashMap`则按照插入顺序保存键,同时还保留了`HashMap`的查询速度。
标签:
Java
,
Java编程思想
,
JavaSE
,
持有对象
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/230.html
上一篇
持有对象--添加一组元素
下一篇
JVM学习(八)--类加载器与类初始化深度剖析
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
JavaWeb
Zookeeper
Jquery
锁
JavaSE
pytorch
哈希表
Kafka
LeetCode刷题
设计模式
Eclipse
序列化和反序列化
Azkaban
MySQL
RSA加解密
gorm
Yarn
Shiro
国产数据库改造
MyBatis
Java
Ubuntu
并发线程
CentOS
持有对象
Flume
Netty
Spark Streaming
Spring
线程池
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭