当前位置:首页 » 编程语言 » javamapfor循环

javamapfor循环

发布时间: 2022-07-30 17:21:38

‘壹’ java循环遍历Map的几种方法

第一种用for循环

Java代码
for(Map.Entry<String, String> entry:map.entrySet()){
System.out.println(entry.getKey()+"--->"+entry.getValue());
}

第二种用迭代

Java代码
Set set = map.entrySet();
Iterator i = set.iterator();
while(i.hasNext()){
Map.Entry<String, String> entry1=(Map.Entry<String, String>)i.next();
System.out.println(entry1.getKey()+"=="+entry1.getValue());
}

用keySet()迭代

Java代码
Iterator it=map.keySet().iterator();
while(it.hasNext()){
String key;
String value;
key=it.next().toString();
value=map.get(key);
System.out.println(key+"--"+value);
}

用entrySet()迭代

Java代码
Iterator it=map.entrySet().iterator();
System.out.println( map.entrySet().size());
String key;
String value;
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
key=entry.getKey().toString();
value=entry.getValue().toString();
System.out.println(key+"===="+value);
}

‘贰’ java怎样循环往map中存值

Mapmap=newHashMap();

Iteratorit=map.keySet().iterator();

Objectkey;

Objectvalue;

while(it.hasNext()){

key=it.next();

value=map.get(key);

System.out.println(key+":"+value);

}

用keySet得到map 键的set集合 然后用这个集合去迭代

‘叁’ java Map 怎么遍历

关于java中遍历map具体有四种方式,请看下文详解。

1、这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用。

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

for(Map.Entry<Integer, Integer> entry : map.entrySet()) {

System.out.println("Key = "+ entry.getKey() + ", Value = "+ entry.getValue());

}

2、在for-each循环中遍历keys或values。

如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

for(Integer key : map.keySet()) {

System.out.println("Key = "+ key);

}

for(Integer value : map.values()) {

System.out.println("Value = "+ value);

}

该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

3、使用Iterator遍历

使用泛型:

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();

while(entries.hasNext()) {

Map.Entry<Integer, Integer> entry = entries.next();

System.out.println("Key = "+ entry.getKey() + ", Value = "+ entry.getValue());

}

不使用泛型:

Map map = newHashMap();

Iterator entries = map.entrySet().iterator();

while(entries.hasNext()) {

Map.Entry entry = (Map.Entry) entries.next();

Integer key = (Integer)entry.getKey();

Integer value = (Integer)entry.getValue();

System.out.println("Key = "+ key + ", Value = "+ value);

}

4、通过键找值遍历(效率低)

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

for(Integer key : map.keySet()) {

Integer value = map.get(key);

System.out.println("Key = "+ key + ", Value = "+ value);

}

假设Map中的键值对为1=>11,2=>22,3=>33,现用方法1来遍历Map代码和调试结果如下:

(3)javamapfor循环扩展阅读:

1、HashMap的重要参数

HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。

加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。

在Java编程语言中,加载因子默认值为0.75,默认哈希表元为101。

2、HashMap的同步机制

注意,此实现不是同步的。 如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外部同步。

(结构上的修改是指添加或删除一个或多个映射关系的任何操作;以防止对映射进行意外的异步访问,如下:

Map m = Collections.synchronizedMap(new HashMap(...));

‘肆’ java中的for循环

迭代器遍历的简单写法,是一个加强型的for循环
for(String str : strFile)-->for(int i=0;i<strFile.length;i=+){ String str = strFile[i];}

for(Class obj: List<Class>)

‘伍’ Java的HashMap与for-each循环共用

这样的写法是没有问题,肯定是别的地方的问题

import java.util.HashMap;
public class MapKeysetTest{
public static void main(String args[]){
HashMap<String, String> map = new HashMap<String, String>();
map.put("a", "aa");
map.put("b", "bb");
map.put("c", "cc");
for(String s:map.keySet()){
System.out.println(s);
}
}
}

这样是能正确打开出来 a\b\c的

‘陆’ 工作中你是如何用Java 遍历 Map的呢

在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。

既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等)

方法一、 在for-each循环中使用entries来遍历

这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。

作为方法一的替代,这个代码看上去更加干净;但实际上它相当慢且无效率。因为从键取值是耗时的操作(与方法一相比,在不同的Map实现中该方法慢了20%~200%)。如果你安装了FindBugs,它会做出检查并警告你关于哪些是低效率的遍历。所以尽量避免使用。

总结

如果仅需要键(keys)或值(values)使用方法二。如果你使用的语言版本低于java 5,或是打算在遍历时删除entries,必须使用方法三。否则使用方法一(键值都要)。

‘柒’ 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 用for循环的问题

亲,你要搞清楚。集合类的foreach只能用来遍历,不能进行修改操作的。即不能修改、删除、添加元素。
只能遍历。如果进行了修改操作的话。会抛出java.util.异常
,表示你不同在遍历的同时,又进行修改。
如果你非得,要做修改操作。请选择正常的for循环。以List为例。
List<String>list=newArrayList();
for(inti=0;i<10;i++){
list.add(i+"");
}
System.out.println(list.size());//10
for(inti=0;i<list.size();i++){
if(list.get(i).equals("1")){
list.remove(list.get(i));
}
}
System.out.println(list.size());//9

‘玖’ java 关于Map 的两个for循环的区别是什么

//这里是调用Map的entrySet方法迭代出Map中的Entry对象,
//这里Entry对象中其实也是存放的为Key-->Value格式的键值对,其有getKey和getValue方法分别可以取其Key值和Value值
//Entry中的Key--Value键值对和Map中的每一个键值对相对应
//返回映射中包含的映射关系的Set视图。也是一个Set,而Set中每个元素是内部类Map.Entry。
for (Map.Entry<Integer, String> entry : lhmap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue() + "\t");
}
//这里使用迭代器首先迭代出Map的所有Key值,返回映射中包含的键的Set视图。 是key的Set集合
//根据Key值取出Map中的Value值
for (Iterator<Integer> it = lhmap.keySet().iterator(); it.hasNext();) {
Object key = it.next();
System.out.println(key + "=" + lhmap.get(key));
}
//你可以给Map中存N多个数据,然后用上面的方法测试下性能,你回发现entrySet方法比keySet效率会高很多

有不明白的地方 请追问。

‘拾’ Java学生信息表,Map存储对象,Map使用泛型和增强for循环来做

1、首先定义学生类 ,这里只定义年龄和它的设置、获取方法,其他属性自己补充。
Class Student{
private int age;
private int getAge(){
return this.age;
}
private void setAge(int age){
this.age = age;
}
2、然后定义TestMain类,
Class TestMain{
public static void main(String args【】){
//这里,后续的步骤里的代码都写在这里。

}}
3.然后定义Map 以及获取输入的逻辑,这里只写了部分内容,其他内容自己补充,形式是一样的,类型注意下:
Map< Integer, Student> myMap = new Map<Integer, Student>();//这里用了泛型注意,不懂自己网络下泛型。
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
4、创建对象并赋值,然后把对象存入map中:
Student zhangsan = new Student();
zhangsan.age = age;
zhangsan.name = name;
myMap.put(zhangsan.number,zhangsan);//注意这里的zhangsan.number是他的学号,我前面没有定义,需要你自己补充定义和补充赋值。
5、看来你已经做完了,不需要 我继续回答了。

热点内容
ftp服务器输入密码 发布:2025-01-24 05:27:41 浏览:209
电信帐号怎么改密码 发布:2025-01-24 05:11:22 浏览:846
笔记本x17配置怎么选 发布:2025-01-24 05:05:53 浏览:7
python如何封装 发布:2025-01-24 05:05:46 浏览:843
csgo怎么连接服务器 发布:2025-01-24 05:05:45 浏览:322
408哪个配置合适 发布:2025-01-24 05:01:54 浏览:882
oraclesql删除重复 发布:2025-01-24 05:01:12 浏览:408
少儿编程排行 发布:2025-01-24 04:40:46 浏览:698
搭建服务器怎么使用 发布:2025-01-24 04:19:34 浏览:444
平行进口霸道哪些配置有用 发布:2025-01-24 04:19:32 浏览:874