|
5鱼币
题目为:创建Map集合,创建Emp对象,并将Emp对象添加到集合中(Emp对象的id作为Map集合的键),并将id为015的对象从集合中移除。删除语句该怎么写
import java.util.HashMap;
class Emp{
private String e_id;
private String e_name;
public Emp(String name,String id) {//构造方法
this.e_id=id;
this.e_name=name;
}
public void setId(String id) {
this.e_id=id;
}
public String getId() {
return e_id;
}
public void setName(String name) {
this.e_name=name;
}
public String getName() {
return e_name;
}
}
public class Test3 {
public static void main(String[] args) {
Map<String, String> map=new HashMap<>(); //由HashMap实现Map对象
Emp emp1=new Emp("011","li");//创建Emp对象
Emp emp2=new Emp("012","da");
Emp emp3=new Emp("013","ad");
Emp emp4=new Emp("014","sw");
Emp emp5=new Emp("015","ws");
map.put(emp1.getId(), emp1.getName());//将对象添加进集合中
map.put(emp2.getId(), emp2.getName());
map.put(emp3.getId(), emp3.getName());
map.put(emp4.getId(), emp4.getName());
map.put(emp5.getId(), emp5.getName());
Set<String> set=map.keySet();//获取map集合中key对象集合
Iterator <String> it=set.iterator();
while(it.hasNext()) {
String str=(String)it.next();
String name=(String)map.get(str);
System.out.println(name+""+str);
}
}
}
- public static void main(String[] args) {
- HashMap<String, String> map = new HashMap<String, String>();
- map.put("1", "test1");
- map.put("2", "test2");
- map.put("3", "test3");
- map.put("4", "test4");
-
- //完整遍历Map
- for (Entry<String, String> entry : map.entrySet()) {
- System.out.printf("key: %s value:%s\r\n", entry.getKey(), entry.getValue());
- }
-
- //删除元素
- Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
- while(it.hasNext()){
- Map.Entry<String, String> entry= it.next();
- String key= entry.getKey();
- int k = Integer.parseInt(key);
- if(k%2==1){
- System.out.printf("delete key:%s value:%s\r\n", key, entry.getValue());
- it.remove();
- }
- }
-
- //完整遍历Map
- for (Entry<String, String> entry : map.entrySet()) {
- System.out.printf("key: %s value:%s\r\n", entry.getKey(), entry.getValue());
- }
- }
复制代码
结果:
- key: 1 value:test1
- key: 2 value:test2
- key: 3 value:test3
- key: 4 value:test4
- delete key:1 value:test1
- delete key:3 value:test3
- key: 2 value:test2
- key: 4 value:test4
复制代码
注意
但对于iterator的remove()方法,也有需要我们注意的地方:
每调用一次iterator.next()方法,只能调用一次remove()方法。
调用remove()方法前,必须调用过一次next()方法。
JDK-API中对于remove()方法的描述:
void remove()从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的集合,则迭代器的行为是不明确的。
抛出:UnsupportedOperationException - 如果迭代器不支持 remove 操作。IllegalStateException - 如果尚未调用 next 方法,或者在上一次调用 next 方法之后已经调用了remove 方法。
|
最佳答案
查看完整内容
结果:
注意
但对于iterator的remove()方法,也有需要我们注意的地方:
每调用一次iterator.next()方法,只能调用一次remove()方法。
调用remove()方法前,必须调用过一次next()方法。
JDK-API中对于remove()方法的描述:
void remove()从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指 ...
|