java - 在java中为特定条件创建哈希图
问题描述
我正在尝试创建一个哈希图:
{Integer, List<Integer>}.
例如,我有以下集合: Numbers { 0,1,3,4,5 0,1,4,5,6 0,1,6,7,8 1,2,5,6,7 1,2 ,4,5,6 }
我需要创建一个哈希图,上面设置的第一个值作为键,同时将值添加到列表中,如下所示: hashmap = [0 = {1,3,4,5}, {1,4,5,6}, {1,6,7,8}] [1 = {2,5,6,7}, {2,4,5,6}]
等等。
我遍历集合。如果第一个值与前一个不同,我需要创建一个新列表并开始存储。否则我需要将值添加到先前创建的列表中。
我无法创建新列表。如果我做这样的事情:
int prev = 0;
for(Number n : Numbers)
{
int current = n;
if(prev_first != current)
{
List<Integer> l = new Arraylist<>();
hashmap.out(current, l);
l.add(n);
}
else
{
l.add(n);
}
}
问题是编译器看不到列表 'l' 并说它可能没有针对 else 条件进行初始化。
我该如何解决这个问题?
谢谢和问候,史密斯。
解决方案
您正在if
声明中创建列表。因此,您无法从else
语句中访问列表。只需在语句之前创建列表,if
编译器就会停止抱怨。
推荐阅读
- node.js - 在以某种方式使用 nodemailer 后,我的邮件帐户被用于垃圾邮件
- amazon-web-services - AWS cloudformation:如何在 Windows 本地运行 cfn-nag
- sql - 没有公共字段的 MS Access 加入查询
- sml - 匿名函数参数在 SML 的 foldl 中的位置
- c# - 在 C# 中动态更改字体时内存不足
- php - 是否有必要在php中关闭准备好的语句
- python - 'NoneType' 对象没有属性 'node' Lavalink
- hive - 执行引擎为 TEZ 的 HIVE
- html - 模态图像库缩略图部分中的水平滚动现在正在工作
- javascript - 函数中的输入标签问题 - React JS