new_culture
2016-08-21 15:10
采纳率: 100%
浏览 3.0k
已采纳

Java的map集合累计存入数据

把遍历一个map集合中的值累计存入另一个map中,一个key对应多个值,不是只有一个...求大神指点。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

14条回答 默认 最新

  • qq_22668529 2016-08-22 01:15
    已采纳

    你可以定义一个list集合,存放多个值,然后将key对应的value值是list的集合对象,既满足map的哈希表结构,也保证了key对应多个值的这个需求

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 一本道长 2016-08-21 15:19

    叙述问题让外行听懂也是一项重要技能。

    评论
    解决 无用
    打赏 举报
  • yuyubingMan 2016-08-21 15:30

    Java Map是一个哈希表结构的数据结构,每个key对应一个hash值,然后根据这个hash值去找对应的value。
    所以一个key不能对应多个value,但是多个key可以对应一个value。
    通俗的讲:一个函数只能对应一个值,但是一个值可以对应多个函数。

    评论
    解决 无用
    打赏 举报
  • 行书开发 2016-08-21 15:46

    每个key对应一个hash值,然后根据hash值去找对应的value; 可以理解成一个函数对应一个值,一个值可以对应多个函数.

    评论
    解决 无用
    打赏 举报
  • w1317812416 2016-08-21 15:53

    key 值对应一个 value 值 key不能重复 但是value可以重复,,,

    评论
    解决 无用
    打赏 举报
  • dabocaiqq 2016-08-21 16:19

    package com.koolsee.xulonghui.test;

    import java.util.HashMap;
    import java.util.Map;

    public class Test {

    public static void main(String[] args) {
        Test t = new Test();
        Map<Integer, User> map = new HashMap<Integer, User>();
        map.put(1, t.new User(1, "zhansan", 1));
        map.put(2, t.new User(2, "zhansan", 1));
        map.put(3, t.new User(3, "lisi", 1));
        map.put(4, t.new User(4, "lisi", 1));
        map.put(5, t.new User(5, "wangwu", 1));
        map.put(6, t.new User(6, "zhaoliu", 1));
        System.out.println(getNameCount(map));
    
    }
    
    private static Map<String, Integer> getNameCount(Map<Integer, User> map) {
        Map<String, Integer> resultMap = null;
        if ((map != null) && !map.isEmpty()) {
            resultMap = new HashMap<String, Integer>();
            for (Integer key : map.keySet()) {
                User user = map.get(key);
                Integer count = resultMap.get(user.getName());
                if (count != null) {
                    resultMap.put(user.getName(), count + 1);
                } else {
                    resultMap.put(user.getName(), 1);
                }
            }
        }
        return resultMap;
    }
    
    public class User {
    
        private Integer id;
    
        private String name;
    
        private Integer sex;
    
        public User(Integer id, String name, Integer sex) {
            super();
            this.id = id;
            this.name = name;
            this.sex = sex;
        }
    
        public Integer getId() {
            return this.id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return this.name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getSex() {
            return this.sex;
        }
    
        public void setSex(Integer sex) {
            this.sex = sex;
        }
    
    }
    

    }

    评论
    解决 无用
    打赏 举报
  • dabocaiqq 2016-08-21 16:19
     package com.koolsee.xulonghui.test;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class Test {
    
        public static void main(String[] args) {
            Test t = new Test();
            Map<Integer, User> map = new HashMap<Integer, User>();
            map.put(1, t.new User(1, "zhansan", 1));
            map.put(2, t.new User(2, "zhansan", 1));
            map.put(3, t.new User(3, "lisi", 1));
            map.put(4, t.new User(4, "lisi", 1));
            map.put(5, t.new User(5, "wangwu", 1));
            map.put(6, t.new User(6, "zhaoliu", 1));
            System.out.println(getNameCount(map));
    
        }
    
        private static Map<String, Integer> getNameCount(Map<Integer, User> map) {
            Map<String, Integer> resultMap = null;
            if ((map != null) && !map.isEmpty()) {
                resultMap = new HashMap<String, Integer>();
                for (Integer key : map.keySet()) {
                    User user = map.get(key);
                    Integer count = resultMap.get(user.getName());
                    if (count != null) {
                        resultMap.put(user.getName(), count + 1);
                    } else {
                        resultMap.put(user.getName(), 1);
                    }
                }
            }
            return resultMap;
        }
    
        public class User {
    
            private Integer id;
    
            private String name;
    
            private Integer sex;
    
            public User(Integer id, String name, Integer sex) {
                super();
                this.id = id;
                this.name = name;
                this.sex = sex;
            }
    
            public Integer getId() {
                return this.id;
            }
    
            public void setId(Integer id) {
                this.id = id;
            }
    
            public String getName() {
                return this.name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public Integer getSex() {
                return this.sex;
            }
    
            public void setSex(Integer sex) {
                this.sex = sex;
            }
    
        }
    
    }
    
    
    评论
    解决 无用
    打赏 举报
  • csdn_JAVA_Android 2016-08-22 00:30

    一个钥匙只能开一把锁 但是一把锁能有多个钥匙 钥匙就是key(键) 锁就是value(值)

    评论
    解决 无用
    打赏 举报
  • pong-jack 2016-08-22 00:51

    每个key值只能对应一个hash值,只能对应一个value值,所以一个key对应多个value值得情况并不存在,可是一个value值可以对应多个key值

    评论
    解决 无用
    打赏 举报
  • nebo 2016-08-22 00:53

    map中key是唯一的,如果前面有一个key,后面有相同的key值填入,那么后面这个 key对应的value会把,前面相同key的value 替换掉图片说明

    评论
    解决 无用
    打赏 举报
  • 情人节也放假 2016-08-22 01:18

    多个值放个list好咯,然后Map

    评论
    解决 无用
    打赏 举报
  • xyzhanh 2016-08-22 03:01

    Map testMap = new HashedMap();
    List testList = new ArrayList<>();
    testList.add("value1");
    testList.add("value2");
    testList.add("value3");
    testMap.put("key1", testList);
    把多个value值放到list集合里面就行了,或者多个value值组成一个字符串
    如 : Strign value = value1+","+value2+","+value3;

    评论
    解决 无用
    打赏 举报
  • xyzhanh 2016-08-22 03:05

    你描述的不是很清楚,下次提问先把问题讲清楚或者直接截图贴上
    testMap.put(key,Object);
    看到没有,value其实是一个Object类型的,也就是说可以存储任意对象,比如 bean、集合、数组、字符串......

    评论
    解决 无用
    打赏 举报
  • sky小糊涂神 2016-08-22 09:16

    真的,这是你5次问相同的问题了,这个知识点有这么难吗。。你去学一下啊

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题