我正在使用 HashMap,其中键是字符串,值是对象(信号)。在遍历 Map 时,我可以在将对象的属性之一写入文件之前对其进行编辑吗?
这是我的代码
public void createFile(HashMap<String , Signal> map, final BufferedWriter buffwriter, long totalSize) {
final Iterator<String> iterator = map.keySet().iterator();
while(iterator.hasNext()) {
String messageName = iterator.next();
Signal signal = map.get(messageName);
signal.setBandwidth((signal.getSize()/totalSize)*100);
csvOutput.write(signal.getSource());
csvOutput.write(signal.getName());
csvOutput.write(signal.getComponent());
csvOutput.write(Integer.toString(signal.getOccurance()));
csvOutput.write(Integer.toString(signal.getSize()) );
csvOutput.write(Float.toString(signal.getBandwidth()));
csvOutput.endRecord();
}
}
信号.java
public class Signal implements Comparable<Signal>{
String name;
float bandwidth;
public void setName(String name){
this.name = name;
}
public void setBandwidth(float bandwidth){
this.bandwidth = bandwidth;
}
public String getName(){
return this.name;
}
public float getBandwidth(){
return this.bandwidth;
}
@Override
public int compareTo(Signal signal) {
return 1;
}
在上面的代码中,我使用messagName 作为映射中每个键的键,我得到它的值尝试设置带宽属性,然后将其写入文件,但它没有更新带宽。
我该怎么做 ?我剩下的唯一选择是删除条目并在迭代时添加另一个具有新值的选项吗?
提前致谢