做一个更好的实现修改ArrayList <HashMap <String,Integer >>

Bla*_*dez 2 java hashmap

我有一个hashmap列表.一个字段是一个整数,另一个是一个布尔值,它会告诉我该项是否被选中.

最终目的是更改ArrayList,取消选择已选择的旧项目,并标记新项目.我制作了这段代码,但我想知道是否有更好的方法来做到这一点.

VisualizationBean visualizationBean = new VisualizationBean();
ArrayList<HashMap<Boolean, Integer>> resultsPerPage = visualizationBean.getResultsPerPage();
for (Iterator iterator = resultsPerPage.iterator(); iterator.hasNext();) {
  HashMap<Boolean, Integer> hashMap = (HashMap<Boolean, Integer>) iterator.next();
   if(hashMap.containsKey(true)){
     int beforeSelected = hashMap.get("true");
     hashMap.put(false, beforeSelected);
   }
   else{
    if(hashMap.get(false) == number){
      hashMap.put(true, number);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

Sea*_*oyd 5

请不要使用地图列表来执行您正在执行的操作.

使用BitSet,它是为这个目的而设计的.(根据您的要求,您可能需要一个BitSet列表,但绝不需要Map的列表,特别是从布尔值到任何东西).

或者,您可以使用从整数映射到布尔值(而不是从布尔值到整数).