Я использую HashMap, где ключ String и Value является объектом (Signal). Итерация по карте Можно ли изменить один из атрибутов моего объекта, прежде чем я напишу его в файл.Атрибут обновления объекта во время итерации по HashMap
Вот мой код
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 в качестве ключа для каждого ключа в карте я получаю его значение Попробуйте установить атрибут полосы пропускания, а затем записать его в файл, но он не обновляет полосу пропускания.
Как это сделать? Единственный вариант, с которым я остаюсь, чтобы удалить запись и добавить другую с новым значением во время итерации?
Заранее спасибо
Где код класса и методов сигнала установить и получить для полосы пропускания? –
позвольте мне также указать – Wearybands
Просьба представить декларацию 'totalSize'. Если оно имеет значение 100, то полоса будет оставаться как 'signal.getSize()'. Просто чтобы проверить. – idiazt