今天项目中遇到一个小问题,类似的代码如下:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
*
* @author liyebing
* @version $Id: TestError.java, v 0.1 2011-7-20 下午10:59:59 liyebing Exp $
*/
public class TestError {
public static void main(String[] args) {
Map<String,String> map1=new HashMap<String,String>();
map1.put("key1", "value1");
map1.put("key2", "value2");
List<String> list1=new ArrayList<String>();
list1.add("list1");
Set<String> set1= map1.keySet();
set1.addAll(list1);
}
}
初看,貌似没啥问题,一运行,在最后一行set1.addAll(list1);会抛出下面的异常:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(Unknown Source)
at java.util.AbstractCollection.addAll(Unknown Source)
at demo.lucene.chart1.TestError.main(TestError.java:29)
其实只要是向set1中添加值,都会出现这个异常。具体原因我没去分析,估计是添加值会影响到map1中的key的集合。
记录一下,下次编码避免这个陷阱。
分享到:
相关推荐
1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中, 放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、...
Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort(unsort_key); for (int i = 0; i < unsort_key.length; i++) { result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i])); }...
可以通过2种方法遍历HashMap <br>Map map... <br>for (Iterator iter = map.keySet().iterator(); iter.hasNext();) { <br> Object key = iter.next(); <br> Object val = map.get(key); <br>} <br>
返回的 set 中的每个元素都是一个 Map.Entry 类型。 private Hashtable, String> emails = new Hashtable, String>(); 另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象 //方法一: ...
3.Map(映射<集合>)是无序的,是一种把键对象和值对象进行映射的集合,它每一个元素都包含一对键对象和值对象,给出键对象就可以得到值对象,键对象不允许重复,对值没有要求,多个任意键对象可以映射到一个值对象...
Set<String> keys = map.keySet(); for (String key : keys) { Object value = map.get(key); sb.append('\"'); sb.append(key); sb.append('\"'); sb.append(':'); sb.append(toJson(value)); sb....
Map接口概念 Java集合框架中的Map接口表示一种键值对(key-value)的数据结构,其中每个元素都包含一个唯一的键和对应的值。在Map中,每个键必须是唯一的,而值可以重复。...7. keySet():返回一个包含Map
Iterator<String> hmkey = cartMap.keySet().iterator(); while(hmkey.hasNext()){ String pid = hmkey.next(); if(pid.equals(productId)){ return true; } } return false; } /** * 从...
主要为大家详细介绍了Java使用keySet方法获取Map集合中的元素,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1212Map.doc 目的: 学会使用 Map、TreeMap 完成内容 1. 定义 Map, 加入一些数据 使用 entrySet 方式显示全部键、值其内容 使用 keySet 方式显示全部键、值内容 使用 values 显示全部值内容
return map.keySet(); } @SuppressWarnings("unchecked") public void putAll(Map t) { // TODO Auto-generated method stub map.putAll(t); } public int size() { // TODO Auto-generated method stub ...
System.out.println(map.keySet().toString()); System.out.println(map.values().toArray()[0]); System.out.println(Calendar.getInstance()); XLPExcel xlpExcel = new XLPExcel(); List<Map, Object>>...
//该项目demo只返回一个时间段做为展示 Map, String> time = times.get(id); Set<String> keys = time.keySet(); time.put("id", id); JSONObject t = new JSONObject(); for(String key : keys) { t.put(key...
public static String sendGet(String url, Map, String> parameters) { String result=""; BufferedReader in = null;// 读取响应输入流 StringBuffer sb = new StringBuffer();// 存储参数 String params = ...
public String invokeServiceMethod(String url,Map,String> params,Map, String> header) throws Exception{ HttpClient httpclient=new DefaultHttpClient(); HttpResponse response = null; ...
for (String property : propertyMap.keySet()) { if (property != null && !property.equals("")) { buffer.append(relationList.get(index)); buffer.append(" ").append(this.getBeanShortName...
遍历MAP的几种方法,利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想要的 values,更具灵活性
java,利用keySet进行遍历map
public class IndexBuilder3 extends Configured{ public static class MapperIndex extends TableMapper,Put>{ ...Set[]> keys = indexs.keySet(); for (byte[] k:keys){ // 该列对应的索引表名字
代码总是猝不及防的。 HashMap map =new HashMap(); map.put(李靖, 嗲地); map.put(哪吒, 弟弟); map.put(金吒, 大弟弟);... for (String key: map.keySet()) { Integer hash =key.hashCode(); System.out.printl