Ywylalala
K歌之王.
采纳率100%
2018-10-27 06:16

求助map存值问题怎么都想不通

已结题

Map> map=new HashMap<>();
int [] array={1,2,4,5,6,9,8,7,4,1,2,5,8,9,6,3,2,1,4,7,8,5,2,2,3,6};
for (int ar:array){
List list=map.get(ar);
if(list!=null){
list.add(ar);
}else {
List li=new ArrayList<>();
li.add(ar);
map.put(ar,li);
}
System.out.println(map);
}

  • 点赞
  • 收藏
  • 复制链接分享

1条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前

    你的代码不完整,我修正了下:

    import java.util.*;
    class Untitled {
        public static void main(String[] args) {
            Map<Object,List<Object>> map=new HashMap<>();
            int [] array={1,2,4,5,6,9,8,7,4,1,2,5,8,9,6,3,2,1,4,7,8,5,2,2,3,6};
            for (int ar:array){
                List list=map.get(ar); //从map里找是否有这个数字的“类”
                if(list!=null){ //有的话
                    list.add(ar); //添加到对应的类下的list里面
                }else { //没有的话
                    List li=new ArrayList<>(); //定义一个list
                    li.add(ar); //将这个数字添加进去(类似上面3行)
                    map.put(ar,li); //把类别和list放入map
                }
                System.out.println(map); //输出当前map的状态
            }
        }
    }
    

    运行结果:
    {1=[1]}
    {1=[1], 2=[2]}
    {1=[1], 2=[2], 4=[4]}
    {1=[1], 2=[2], 4=[4], 5=[5]}
    {1=[1], 2=[2], 4=[4], 5=[5], 6=[6]}
    {1=[1], 2=[2], 4=[4], 5=[5], 6=[6], 9=[9]}
    {1=[1], 2=[2], 4=[4], 5=[5], 6=[6], 8=[8], 9=[9]}
    {1=[1], 2=[2], 4=[4], 5=[5], 6=[6], 7=[7], 8=[8], 9=[9]}
    {1=[1], 2=[2], 4=[4, 4], 5=[5], 6=[6], 7=[7], 8=[8], 9=[9]}
    {1=[1, 1], 2=[2], 4=[4, 4], 5=[5], 6=[6], 7=[7], 8=[8], 9=[9]}
    {1=[1, 1], 2=[2, 2], 4=[4, 4], 5=[5], 6=[6], 7=[7], 8=[8], 9=[9]}
    {1=[1, 1], 2=[2, 2], 4=[4, 4], 5=[5, 5], 6=[6], 7=[7], 8=[8], 9=[9]}
    {1=[1, 1], 2=[2, 2], 4=[4, 4], 5=[5, 5], 6=[6], 7=[7], 8=[8, 8], 9=[9]}
    {1=[1, 1], 2=[2, 2], 4=[4, 4], 5=[5, 5], 6=[6], 7=[7], 8=[8, 8], 9=[9, 9]}
    {1=[1, 1], 2=[2, 2], 4=[4, 4], 5=[5, 5], 6=[6, 6], 7=[7], 8=[8, 8], 9=[9, 9]}
    {1=[1, 1], 2=[2, 2], 3=[3], 4=[4, 4], 5=[5, 5], 6=[6, 6], 7=[7], 8=[8, 8], 9=[9, 9]}
    {1=[1, 1], 2=[2, 2, 2], 3=[3], 4=[4, 4], 5=[5, 5], 6=[6, 6], 7=[7], 8=[8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2], 3=[3], 4=[4, 4], 5=[5, 5], 6=[6, 6], 7=[7], 8=[8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2], 3=[3], 4=[4, 4, 4], 5=[5, 5], 6=[6, 6], 7=[7], 8=[8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2], 3=[3], 4=[4, 4, 4], 5=[5, 5], 6=[6, 6], 7=[7, 7], 8=[8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2], 3=[3], 4=[4, 4, 4], 5=[5, 5], 6=[6, 6], 7=[7, 7], 8=[8, 8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2], 3=[3], 4=[4, 4, 4], 5=[5, 5, 5], 6=[6, 6], 7=[7, 7], 8=[8, 8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2, 2], 3=[3], 4=[4, 4, 4], 5=[5, 5, 5], 6=[6, 6], 7=[7, 7], 8=[8, 8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2, 2, 2], 3=[3], 4=[4, 4, 4], 5=[5, 5, 5], 6=[6, 6], 7=[7, 7], 8=[8, 8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2, 2, 2], 3=[3, 3], 4=[4, 4, 4], 5=[5, 5, 5], 6=[6, 6], 7=[7, 7], 8=[8, 8, 8], 9=[9, 9]}
    {1=[1, 1, 1], 2=[2, 2, 2, 2, 2], 3=[3, 3], 4=[4, 4, 4], 5=[5, 5, 5], 6=[6, 6, 6], 7=[7, 7], 8=[8, 8, 8], 9=[9, 9]}

    这段代码的作用是,把array的值归类插入map里,map的key是int,表示它其中存放的int(归类),value是一个list,所有和key相同的放入其中。

    还有不明白请追问,如果问题解决,请点我回答右边的采纳,谢谢。

    点赞 评论 复制链接分享