举个例子:
Map<Integer, String>map = new HashMap<Integer, String>()
先拿所有的键:
Integer[] keys = map.keySet().toArray(new Integer[0])
然後随机一个键,找出该值:
Random random = new Random()
Integer randomKey = keys[random.nextInt(keys.length)]
String randomValue = map.get(randomKey)
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:")
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key))
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:")
Iterator<Map.Entry<String, String>>it = map.entrySet().iterator()
while (it.hasNext()) {
Map.Entry<String, String>entry = it.next()
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue())
}
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>()
map.put("key1", "value1")
map.put("key2", "value2")
map.put("key3", "value3")
Set<String> keySet = map.keySet()
int i = map.size()-1
Map<Integer, String> mapKey = new HashMap<Integer, String>()
Map<Integer, String> mapValue = new HashMap<Integer, String>()
for(java.util.Map.Entry<String, String> entry : map.entrySet()) {
//将原来MAP的VALUE放入新的MAP的VALUE里面
mapKey.put(i, entry.getValue())
//将原来MAP的KEY放入新的MAP的VALUE 里面
mapValue.put(i, entry.getKey())
i--
}
//打印KEY值
System.out.println(mapKey.get(2))
//打印VALUE值
System.out.println(mapValue.get(0))
}
扩展资料:java键值对的使用
Map集合没有继承Collection接口,但是其提供了key到value的映射。每一个key不能有相同,每个key只能映射一个value值。
下面通过一个程序来说明键值对的使用,下面是一个基本的键值对应用程序:
package Test
import java.util.Collection
import java.util.HashMap
import java.util.Iterator
import java.util.Map
import java.util.Set
public class KeyValue {
public static void main(String[] args) {
Map <String,String>map=new HashMap<>()
map.put("01", "张三")
map.put("02", "王五")
Set<String>set=map.keySet()
Iterator <String>it=set.iterator()
System.out.println("key中集合元素:")
while(it.hasNext()){
System.out.println(it.next())
}
Collection <String>coll=map.values()
it=coll.iterator()
System.out.println("value中集合元素:")
while(it.hasNext()){
System.out.println(it.next())
}
}
}
输出结果如图所示: