有没有谁知道JAVA中的一些集合类的区别,我看怎么用发都差不多,那在什么地方要用什么集合类呢!
发布网友
发布时间:2022-04-25 18:37
我来回答
共4个回答
热心网友
时间:2023-10-24 00:10
JAVA中所有的集合全都实现了iterator()方法,也就是说你用集合就可以用迭代器遍历集合。
主要跟你说这么几大类常用的,其他的比较不常用的甚至是过时的东西我在这里就不说了。
一、Set
这个集合存放的是无序的、可变长度的、不重复的数据。也就是说Set中存放的数据没有顺序,你存进去的是1,2,3,4,5,可能提取出来的是2,3,1,5,4也可以是别的,总之每次提取都是不一样的。
常用的实现类:
HashSet 一般这个用的比较多
LinkedHashSet 用链表实现的可以让Set集合有顺序、并且顺序提取的效率高。
用法举例:
Set<String> set = new HashSet<String>();
set.add("aaa");
set.add("bbb");
Iterator it = set.iterator()
while(it.hasNext()) {
System.out.println(it.next());
}
(LinkedHashSet一样)
二、List
这个集合存放的是有需的、可变长度的、可以重复的数据。也就是说你存进去的是1,2,3,4,5,1,取出来的一定还是1,2,3,4,5,1。取多少次结果都不会遍。
常用的实现类:
ArrayList 你可以用它做为一个可变长度的数组
LinkedList 用链表实现,支持顺序或着倒序插入提取数据,只要不是无规则的提取数据它的效率高。
用法举例:
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
for(String str : list) {
system.out.println(str);
}
(LinkedList一样)
三、Map
这个集合允许你将数据和键值一一对应,并且可以一个键值对应多个数据。也就是你可以用A对应aa,用B对应bb,用C对应aa。这都是可以的获取数据的时候你可以利用键值提取相应的数据,也可以直接把键值取也来,还可以直接提取数据。
常用实现类:
HashMap 一个无序的Map,并且键值不可以重复,如果重复将被覆盖。
LinkedHashMap 一个有序的Map,我们说的有序都是键值有序。
用法举例:
Map<String,String> map = new HashMap<String,String>();
map.put("A","aaa");
map.put("B","bbb");
for(String key : map.keySet().iterator()) {
System.out.println(map.get(key));
}
或者:
for(String value : map.values().iterator()) {
System.out.println(value);
}
热心网友
时间:2023-10-24 00:11
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。
热心网友
时间:2023-10-24 00:11
期待高手解答
热心网友
时间:2023-10-24 00:12
集合类型主要有3种:set(集)、list(列表)和map(映射)。
1、List(有序、可重复)
List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。
2、Set(无序、不能重复)
Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。
3、Map(键值对、键唯一、值不唯一)
Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。