ArrayList中存放map,确保map中的值唯一,我也测试了,可以,但是不知道是否有没有考虑到得地方..望解答,谢谢
具体代码如下:
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map<String,Object> map1 = new HashMap<String,Object>();
map1.put("linkMail", "aa@a.com");
Map<String,Object> map2 = new HashMap<String,Object>();
map2.put("linkMail", "aa@a.com");
Map<String,Object> map3 = new HashMap<String,Object>();
map3.put("linkMail", "2aa@a.com");
list.add(map1);
list.add(map2);
list.add(map3);
String mail1= null;
String mail2 = null;
for (Map temp : list){
mail1 = (String)temp.get("linkMail");
if(mail1.equals(mail2)){
throw new Exception("error");
}
mail2 = mail1;
}
如果有相同的 想让程序停止运行,不知道这样对吗?谢谢解答~
------解决方案--------------------不需要抛出异常的,continue就可以了
------解决方案--------------------你想让程序停止,那就是System.exit(-1);这是意外的停止,但是可以实现停止的功能。
你这个throw Exception,只是抛出一个异常。并没用使程序停止。
------解决方案--------------------throw new Exception("error");
这个应该是
throw new
RuntimeException("error");吧?
楼主试一试
------解决方案--------------------用returned呀,关键时刻怎能忘记它呢
------解决方案--------------------不好意思,写错了,用return ,程序就会停止
------解决方案--------------------Java code
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("linkMail", "aa@a.com");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("linkMail", "aa@a.com");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("linkMail", "2aa@a.com");
list.add(map1);
list.add(map2);
list.add(map3);
Set<Map<String, Object>> set = new HashSet<Map<String, Object>>(list);
if(set.size() != list.size()) {
throw new Exception("error");
}
------解决方案--------------------
------解决方案--------------------
要重写equals hashCode两个方法