K歌之王. 2018-10-27 06:16 采纳率: 100%
浏览 705
已结题

求助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条回答 默认 最新

  • threenewbee 2018-10-27 06:39
    关注

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

    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相同的放入其中。

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能