Map方法输出value问题
既然value可以指向同一个key,那么如何用输出同一个key下的所有value值呢?怎么删除同一key中指定的value?
正在回答
如果key值的类型是String类型,需要注意的是,key不能是同一个对象,也就是地址不能相同,否则value依然会覆盖。你可以将我贴出的代码改一下,改成同一个对象,你会发现,最后的值也会被覆盖。
public class test1 {
public static void main(String[] args) {
String str1 = new String("xx");
String str2 = new String("xx");
System.out.println(str1 == str2);
Map<String ,String> map = new IdentityHashMap<String ,String>();
map.put(str1, "hello");
map.put(str2, "world");
for(Entry<String,String> entry : map.entrySet())
{
System.out.println(entry.getKey()+" " + entry.getValue());
}
System.out.println(" containsKey---> " + map.containsKey("xx"));
System.out.println("str1 containsKey---> " + map.containsKey(str1));
System.out.println("str2 containsKey---> " + map.containsKey(str2));
System.out.println(" value----> " + map.get("xx"));
System.out.println("str1 value----> " + map.get(str1));
System.out.println("str2 value----> " + map.get(str2));
}
}
如上代码是一个key保存了两个value的一个小示例,你可以运行一下看看。
//将歌曲添加到默认播放列表中 public void addToPlayList(Song song){ mainList.put("默认播放列表", song); System.out.println("默认播放列表中的所有歌曲为:"); } //输出所有默认列表中的歌曲信息 public void putMainList(){ Set<Entry<String, Song>> entryset= mainList.entrySet(); for(Entry<String, Song> date:entryset){ System.out.println(date.getValue()); } } // 将歌曲添加到默认播放列表 public static void main(main(String[] args){ System.out.println("将歌曲添加到主播放列表"); System.out.println("请输入要添加的歌曲数量:"); int num = SCANNER.nextInt(); for (int x = 0; x < num; x++) { System.out.println("请输入第" + (x + 1) + "首歌曲"); System.out.println("请输入歌曲的id:"); String id = SCANNER.next(); System.out.println("请输入歌曲的名称:"); String name = SCANNER.next(); System.out.println("请输入歌曲的演唱者:"); String singer = SCANNER.next(); Song song = new Song(id, name, singer); addToPlayList(song); } putMainList(); } 改来改去,发现最后根本没有输出结果……
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星