`
liyebing
  • 浏览: 56786 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Map.keySet()相关的一个小问题

 
阅读更多

今天项目中遇到一个小问题,类似的代码如下:

 

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的集合。

    记录一下,下次编码避免这个陷阱。

分享到:
评论

相关推荐

    java中Map集合的常用遍历方法及HashMap的应用实例

    1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中, 放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、...

    对于java map类排序

    Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort(unsort_key); for (int i = 0; i &lt; unsort_key.length; i++) { result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i])); }...

    怎样遍历一个HashMap?

    可以通过2种方法遍历HashMap &lt;br&gt;Map map... &lt;br&gt;for (Iterator iter = map.keySet().iterator(); iter.hasNext();) { &lt;br&gt; Object key = iter.next(); &lt;br&gt; Object val = map.get(key); &lt;br&gt;} &lt;br&gt;

    java遍历特例

    返回的 set 中的每个元素都是一个 Map.Entry 类型。 private Hashtable, String&gt; emails = new Hashtable, String&gt;(); 另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象 //方法一: ...

    set.list.map接口

    3.Map(映射&lt;集合&gt;)是无序的,是一种把键对象和值对象进行映射的集合,它每一个元素都包含一对键对象和值对象,给出键对象就可以得到值对象,键对象不允许重复,对值没有要求,多个任意键对象可以映射到一个值对象...

    josn包,josn工具类

    Set&lt;String&gt; 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....

    Java集合框架Map接口.pdf

    Map接口概念 Java集合框架中的Map接口表示一种键值对(key-value)的数据结构,其中每个元素都包含一个唯一的键和对应的值。在Map中,每个键必须是唯一的,而值可以重复。...7. keySet():返回一个包含Map

    Ajax+jsp+Servlet 实现购物车

    Iterator&lt;String&gt; hmkey = cartMap.keySet().iterator(); while(hmkey.hasNext()){ String pid = hmkey.next(); if(pid.equals(productId)){ return true; } } return false; } /** * 从...

    Java使用keySet方法获取Map集合中的元素

    主要为大家详细介绍了Java使用keySet方法获取Map集合中的元素,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    金陵科技学院软件院大二上Java高级1212Map.docx

    1212Map.doc 目的: 学会使用 Map、TreeMap 完成内容 1. 定义 Map, 加入一些数据 使用 entrySet 方式显示全部键、值其内容 使用 keySet 方式显示全部键、值内容 使用 values 显示全部值内容

    pageDate封装参数,不用实体类

    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 ...

    基于poi Excel导出

    System.out.println(map.keySet().toString()); System.out.println(map.values().toArray()[0]); System.out.println(Calendar.getInstance()); XLPExcel xlpExcel = new XLPExcel(); List&lt;Map, Object&gt;&gt;...

    安防门禁SDK控制器Demo

    //该项目demo只返回一个时间段做为展示 Map, String&gt; time = times.get(id); Set&lt;String&gt; keys = time.keySet(); time.put("id", id); JSONObject t = new JSONObject(); for(String key : keys) { t.put(key...

    JavaCrawler

    public static String sendGet(String url, Map, String&gt; parameters) { String result=""; BufferedReader in = null;// 读取响应输入流 StringBuffer sb = new StringBuffer();// 存储参数 String params = ...

    HttpConnectionTool工具类

    public String invokeServiceMethod(String url,Map,String&gt; params,Map, String&gt; header) throws Exception{ HttpClient httpclient=new DefaultHttpClient(); HttpResponse response = null; ...

    sql访问数据库工具类--SqlUtils(java源码)

    for (String property : propertyMap.keySet()) { if (property != null && !property.equals("")) { buffer.append(relationList.get(index)); buffer.append(" ").append(this.getBeanShortName...

    遍历MAP的几种方法

    遍历MAP的几种方法,利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想要的 values,更具灵活性

    java-遍历map

    java,利用keySet进行遍历map

    hbase创建二级索引

    public class IndexBuilder3 extends Configured{ public static class MapperIndex extends TableMapper,Put&gt;{ ...Set[]&gt; keys = indexs.keySet(); for (byte[] k:keys){ // 该列对应的索引表名字

    安杰小讲堂之HashMap(jdk1.7)

    代码总是猝不及防的。 HashMap map =new HashMap(); map.put(李靖, 嗲地); map.put(哪吒, 弟弟); map.put(金吒, 大弟弟);... for (String key: map.keySet()) { Integer hash =key.hashCode(); System.out.printl

Global site tag (gtag.js) - Google Analytics