导航:首页 > 编程语言 > java读取map

java读取map

发布时间:2022-08-19 20:55:41

‘壹’ java怎么获取map的key

java 获取map中所有的key和value值

java.util.Iterator 对 collection 进行迭代的迭代器。

java.util.Iterator it = map.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
entry.getKey() //返回对应的键
entry.getValue() //返回对应的值
}

以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,
然后根据key,依次从Map中去数据,基本方式如下:

Map<String,String> testData = new HashMap<String, String>();

Set<String> keys = testData.keySet();
for(String key :keys){
System.out.println(key+" "+testData.get(key));
}

上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<Map.Entry<K, V>> entrySet();方法。
也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:

Set<Entry<String, String>> entries = testData.entrySet();
for (Entry<String, String> entry : entries) {
System.out.println(entry.getKey()+":"+entry.getValue());
}

当少量的数据时,上述两种方法的效率是差不多的,当数据比较多时,第二种还是要比第一种快。

当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。

‘贰’ java问题 两个main方法读取同一个map

我猜想你的程序大概是这么写的
Class A{
public static Map m = new HashMap();
public static void main(String[] args){
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}

Class B{
public static void main(String[] args){
A.m.get(key)
}
}

这么做肯定是不行的
每个java程序只能有一个main方法
也就是你在执行B类中的main方法时
A类的main方法是从来没有被调用过的
其实你可以改造下A类中的初始化方法
Class A{
public static Map m = new HashMap();
static {
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}

这样在B类中就可以使用了
想知道为什么查询下“静态块”
另、如果你A类中Map不是初始化时就持有
而是写成下面
Class A{
public static Map m = null;
public static void main(String[] args){
m = new HashMap();
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}
这样你才会发现在B类中调用时报了一个空指针异常
你也就会发现其实A类中的main方法根本没有执行过

‘叁’ 如何在java中取map中的键值有哪两种方法

Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");

//第一种:普遍使用,二次取值
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());
}

//第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}

//第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}

‘肆’ java高手请进,我有一个map对象,用来存储一个数组,如何读取这个数组呢

如果把数组的序列号当做 Map 的key ,值当做value,
那么取相应的值可以 map.get(key);
也可以便利Map取值
如:
for(String str:map){
String s = str;
}
这里str为map里value部分

‘伍’ java语言如何循环读取Map对象内的数据

Set<Object> keySet = map.keySet();//获取map的key值的集合,set集合
for(Object obj:keySet){//遍历key
System.out.println("key:"+obj+",Value:"+map.get(obj));//输出键与值
}

‘陆’ java获取map中key

Set<Integer> keySet = map.keySet();
for(Integer key : keySet) {
map.get(key);

}

‘柒’ java中如何如何获取map中某key值的位置

Map 接口不支持这种操作。

如果真的需要的话也没什么太好的办法,比较傻的办法:

如果你有心正经搞一个那么我建议你重写一下HashMap或者TreeMap,自己加一个返回index的方法。貌似TreeMap结构相对简单一些。

‘捌’ java中怎么将一个文件读取到map中map没学好~求指导~

map 是以键值对的形式存储数据的,用values()方法可以得到所有值的集合。然后用for语句挨个得到。

‘玖’ java遍历Map的几种方法分析

1.先初始化一个map
public class TestMap {
public static Map<Integer, Integer> map = new HashMap<Integer, Integer>();
}
2.keySet values
如果只需要map的key或者value,用map的keySet或values方法无疑是最方便的
// KeySet 获取key
public void testKeySet() {
for (Integer key : map.keySet()) {
System.out.println(key);
}
}
// values 获取value
public void testValues() {
for (Integer value : map.values()) {
System.out.println(value);
}
}
3.keySet get(key)
如果需要同时获取key和value,可以先获取key,然后再通过map的get(key)获取value

需要说明的是,该方法不是最优选择,一般不推荐使用

// keySet get(key) 获取key and value
public void testKeySetAndGetKey() {
for (Integer key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
4.entrySet
通过对map entrySet的遍历,也可以同时拿到key和value,一般情况下,性能上要优于上一种,这一种也是最常用的遍历方法

// entrySet 获取key and value
public void testEntry() {
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
5.Iterator
对于上面的几种foreach都可以用Iterator代替,其实foreach在java5中才被支持,foreach的写法看起来更简洁

但Iterator也有其优势:在用foreach遍历map时,如果改变其大小,会报错,但如果只是删除元素,可以使用Iterator的remove方法删除元素

// Iterator entrySet 获取key and value
public void testIterator() {
Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, Integer> entry = it.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
// it.remove(); 删除元素
}
}

阅读全文

与java读取map相关的资料

热点内容
delphi入门pdf 浏览:417
岛国片app 浏览:955
电影院维语版。 浏览:298
php订单代码 浏览:35
区域卷积神经网络Python 浏览:298
重生井冈山参加红军的小说 浏览:589
linux文件系统编程 浏览:876
怀孕神片 浏览:815
8排影院哪个位置好 浏览:906
程序员对链底端的影响 浏览:470
html5socketphp 浏览:86
excel怎样编程 浏览:977
php正则不匹配 浏览:138
垃圾桶怎么连接服务器 浏览:665
21号染色体值算法公式 浏览:248
传入传出的linux命令 浏览:535
罂粟电影剧情 浏览:840
龙口设计图纸加密联系方式 浏览:141
怎么看加密狗是否到期 浏览:239
楚雄用什么app做公交划算 浏览:751