キーが文字列で、値がオブジェクト (シグナル) である HashMap を使用しています。Map を繰り返し処理しているときに、ファイルに書き込む前にオブジェクトの属性の 1 つを編集できますか?
これが私のコードです
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();
}
}
Signal.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 をマップ内の各キーのキーとして使用し、その値を取得します。帯域幅属性を設定してファイルに書き込もうとしましたが、帯域幅が更新されていません。
どうすればできますか?Entry を削除し、反復中に新しい値で別のエントリを追加する唯一のオプションはありますか?
前もって感謝します