Map集合
1. map
1.1 特点:无序 ,以键值对的形式添加元素,键不能重复,值可以重复,它没有继承Collection接口;
无序:数据输入的顺序与输出的顺序不一致;
//1.特征:无序,以键值对的形式存储元素,键唯一,值不唯一
Map<String, String> map = new HashMap<String,String>();
//无序:数据输入顺序与输出顺序不一致
map.put("3", "zs");
map.put("2", "as");
map.put("1", "bs");
System.out.println(map);
//运行结果
---------无序-----------
{1=bs, 2=as, 3=zs}
==键==:在键相同的情况,值是被==覆盖==掉的
System.out.println("--------键相同,值不同------");
map.put("1", "aa");
System.out.println(map);
//运行结果
--------键相同------
{1=aa, 2=as, 3=zs}
1.2 遍历
Map<String, String> map1 = new HashMap<>();
map1.put("1", "as");
map1.put("2", "bs");
map1.put("3", "cs");
System.out.println("-------------获取键--------------");
Set<String> keySet = map1.keySet();
for (String string : keySet) {
System.out.println(string);
}
//运行结果
-------------获取键--------------
1
2
3
System.out.println("----------------获取值----------------");
Collection<String> values = map1.values();
for (String string : values) {
System.out.println(string);
}
//运行结果
----------------获取值----------------
as
bs
cs
System.out.println("----------------获取键值------------------");
Set<Entry<String,String>> entrySet = map1.entrySet();
for (Entry<String, String> entry : entrySet) {
System.out.println(entry);
}
//运行结果
----------------获取键值------------------
1=as
2=bs
3=cs
2.HashMap 与 HashTable 之间的区别
同步及排队 安全 hashtable
异步 不安全 hashmap
3.其他
1.Collections:工具类:提供了一组静态方法操作Collection集合
2.Arrays:工具类:提供了一组静态方法操作数组
3.注意
在用Arrays集合方法添加数据时直接加是会报一个( java.lang.UnsupportedOperationException)的错误,是因为在List中直接调用的Arrays就会少一个Arrays的方法,所以我们用第二种方法添加
List<String> asList =
Arrays.asList(new String[] {"as","bg","sd"});
System.out.println("之前:"+asList.size());
asList.add("ws");
System.out.println("之后:"+asList.size());
//运行结果
之前:3
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at com.zking.collection.DM.main(DM.java:61)
//List<String> asList = new ArrayList<>(Arrays.asList(new String[] {"as","bg","sd"}));
System.out.println("之前:"+asList.size());
asList.add("ws");
System.out.println("之后:"+asList.size());
//运行结果
之前:3
之后:4