因此,我有一个hashmap
public class Reports{
private ArrayList<Resource> resourceList;
private HashMap<String,ArrayList<Resource>> consolidatedAttendance = new HashMap<String,ArrayList<Resource>>();
public void readReport(String reportFile){
//initialized with resources from config file
ArrayList<Resource> repResourceList = new ArrayList<Resource>(getResourceList());
try (BufferedReader br = new BufferedReader(new FileReader(reportFile))) {
String line;
line = br.readLine(); // disregards first line (columns)
while ((line = br.readLine()) != null) {
if(line.length()==0){
break;
}
//store each resource status in resourceList
String[] values = line.split(",");
String resourceName = values[1], resourceStatus = values[2];
int resourceIndex = indexOfResource(resourceList, resourceName);
// to add validation
if(resourceIndex!=-1){
repResourceList.get(resourceIndex).setStatus(resourceStatus);
}
}
}catch(IOException e){
e.printStackTrace();
}
//get Date
String reportFilename = reportFile.substring(0, reportFile.indexOf("."));
String strDate = reportFilename.substring(reportFilename.length()-9);
consolidateRecords(strDate, new ArrayList<Resource>(repResourceList));
}
public void consolidateRecords(String strDate, ArrayList<Resource> repResourceList){
//consolidate records in hashmap
consolidatedAttendance.put(strDate, repResourceList);
// test print
for (String key: consolidatedAttendance.keySet()){
ArrayList<Resource> resources = consolidatedAttendance.get(key);
for(Resource resource: resources){
System.out.println(key+": "+resource.getNickname()+" "+resource.getEid()+" "+resource.getStatus());
}
}
}
}
添加的第一个键:
"21-Dec-20": John Working
"21-Dec-20": Alice Working
"21-Dec-20": Jess Working
对于第二个键,列表中有不同。但是,当添加第二个键(在put()方法之后)时,第一个键的值已经被替换。
"21-Dec-20": John SL
"21-Dec-20": Alice Working
"21-Dec-20": Jess SL
"28-Dec-20": John SL
"28-Dec-20": Alice Working
"28-Dec-20": Jess SL
您的映射
的值是列表
,其元素与GetResourcelist()
返回的列表
的元素相同。创建列表
的副本(两次)并不能改变这一点。
如果每次调用GetResourcelist()
返回包含相同实例的列表
,则映射
中的所有键都将与包含相同实例的不同列表
关联。
主要目标是用hashmap中的值替换字符串中的一些单词作为关键字(关键字是文本中的单词)。钥匙的格式不同。例如:主文本:“Lookahead和Lookahead,统称为Lookahead,是[0-23]断言”hashmap:{Lookahead=test1,Lookahead=test2,Lookahead=test3,[0-23]=newvalue}预期输出:“test1和test2,统称为te
我通过一个接一个地放置值来创建HashMap。当我在每次迭代后打印hashmap时,生成的hashmap包含所有键的相同值。我不明白为什么会这样。我已经粘贴了下面的输出 HashMap(String,List(Object))mRestrictions; 输出:- 逐个限制:-{profile\u name=[Test1]} 逐个限制:-{profile\u name=[url],url=[url
假设我有一个Christmas list对象,它携带一个用于圣诞礼物的ArrayList和另一个用于收件人的字符串。我对这个客户端有以下方法: 所以基本上,我试图在Hazelcast IMAP中初始化一个新的键/值对。我尝试使用christmaslistimap.put()和christmaslistimap.set(),但它们似乎都不起作用。至少,我需要知道如何添加一个新的键让IMap识别。
我需要一些帮助来替换HashMap中的值。HashMap包含每个键的多个值,这些值是从ArrayList中添加的。我想做的是替换键中的一个元素。例如,用户输入键1和索引2,这将是该键的值[1]=[A, B, C, D],索引2将是字母“C”,我想用“X”替换它,这样输出将是[1]=[A, B, X, D],这将在一个同时循环中。 输出: 1 张 AB 光盘 2 张 AB 光盘 3 张 AB 光盘
问题内容: 嗨,我有一个csv叫做。我试图逐行读取csv并将值转换为哈希键值对。这是代码:- csv文件如下:- 当我运行此代码时,出现此错误:- 谁能帮助我修复代码并找出程序中的错误? 问题答案: 在字符串中,当你把它分解的第一次只包含如没有在这样就会导致异常 如果不需要1,2等。可以查看以下代码:
如果你看看hashMap里面java的hashCode方法,你会发现: 因此,当您将内容插入哈希映射时,哈希映射的哈希代码将更改。因此,如果我们在哈希集中插入一个空的哈希映射,然后向此哈希映射插入一些内容,然后调用 它将返回 。为什么 Java 允许这样的行为?这很容易导致哈希集中出现重复的项目。 请尝试运行以下代码: