JavaSE基础知识(二十一)--Java集合(容器)之Collection、Map特性,使用场景总结
作者:互联网
Java SE 是什么,包括哪些内容(二十一)?
本文内容参考自Java8标准
再次感谢Java编程思想对本文的启发!
仅从以下一点来总结Collection和Map的特点:
1、 查找(获取)元素
Collection:
你会发现Collection查找或者获取元素的索引都已经被规定了(或者说默认)。比如
- ⑴、List:
- ①、ArrayList:数字(int)
- ②、LinkedList:数字(int)
- ⑵、Set:
- ①、HashSet:专门的迭代器类(Iterator),需要用此Set保存的元素类型的引用来接收。
- ②、TreeSet:专门的迭代器类(Iterator),需要用此Set保存的元素类型的引用来接收。
它自带元素排列顺序。 - ③、LinkedHashSet:专门的迭代器类(Iterator),需要用此Set保存的元素类型的引用来接收。
- ⑶、Queue:
Queue有必要特别强调一下,因为Queue类型的容器特别就特别在,它只允许在一端上进行操作,不论是插入还是获取操作,都是在端上操作,比如获取操作,规定在哪个端操作,那么你在这个端取出来的是什么就是什么,无法挑剔,也无法按需获取。更重要的是,你获取了一个元素后,如果这个Queue的获取方法的特点是不移除元素,那么你无论怎么获取都是同一个元素,如果这个Queue的获取方法的特点是获取的同时并移除,那么你再次获取,将会获取到下一个元素。- ①、PriorityQueue:既有专门的方法获取元素,也有专门的迭代器类(Iterator)获取元素。
专门的方法获取元素(需要注意元素会不会在获取的同时被移除):
专门的迭代器类(Iterator)获取元素:
- ②、stack:
只有专门的方法获取元素(需要注意元素会不会在获取的同时被移除):
- ③、ArrayDeque:既有专门的方法获取元素,也有专门的迭代器类(Iterator)获取元素。
专门的方法获取元素(需要注意元素会不会在获取的同时被移除):
专门的迭代器类(Iterator)获取元素:
看到这里,你会发现一个问题,如果你想自定义获取元素的方式,使用Collection做不到。比如,你想使用一个对象作为索引去获取元素,Collection根本无法满足,这个时候,你需要使用Map。
- ①、PriorityQueue:既有专门的方法获取元素,也有专门的迭代器类(Iterator)获取元素。
Map:
Map提供了两个"槽"存储元素,它比Collection多一个"槽",多出来的这个"槽"提供了自定义获取元素的可能性
所以你知道了,为什么Map叫做键值对,键就是你可以自定义的索引,值就是你需要存储的那个元素。
- ⑴、Map:
- ①、HashMap:只有专门的方法获取元素。
- ②、TreeMap:只有专门的方法获取元素。
可以这么理解:Collection已经提供了常用的存储元素的实现,如果还不够用,那你就只能自定义了(也就是使用Map了)。
后续的博文将深入这些具体类的源码,分别分析它们的性能,优缺点等等。
PS:时间有限,有关Java SE的内容会持续更新!今天就先写这么多,如果有疑问或者有兴趣,可以加QQ:2649160693,并注明CSDN,我会就博文中有疑义的问题做出解答。同时希望博文中不正确的地方各位加以指正。
- ①、HashMap:只有专门的方法获取元素。
标签:Map,Java,Iterator,器类,元素,Collection,获取 来源: https://blog.csdn.net/ruidianbaihuo/article/details/102767016