更改最后一个元素哈希映射的键



我想把另一个字符串作为哈希映射的最后一个条目的键。

检查 lastEntry 的值并更改它后,我无法使用 setKey 或其他函数来更改我想更改 lastEntry 的键。

EditText name; // put that as the key
Map<String,Integer> Names = new HashMap<String,Integer>(10);
// .
// .
// .
name = (EditText) findViewById(R.id.namep);

我的函数检查最后一个条目的值并更改它:

boolean flagScore = false;
Entry<String, Integer> lastEntry = Names.lastEntry();
if(lastEntry.getValue() < score){
    lastEntry.setValue(score);
    flagScore = true;
}
if(flagScore){
    // put name.getText().toString as key
}

您可以使用模型类和ArrayList来实现此目的。例如

上这样的课

public class Demo {
  private String name; 
  private integer value;
  //create getters and setters for this variables. 
}

在你的类中创建这样的数组列表。

private ArrayList<Demo> namesList  = new ArrayList<Demo>;

为模型类创建对象 演示演示 = 新演示;

demo.name = "";
demo.value = 1;

然后将模型类添加到ArrayList中,如下所示namesList.add(demo);

现在你可以用ArrayList做任何你想做的事情。

这也可以通过使用LinkedHashMap来实现写了一个小程序,希望对你有帮助。

public class HashMapIssue {
public static void main(String[] args) {
    Map<String,Integer> map=new LinkedHashMap<String, Integer>();
    map.put("Integer2", 1);
    map.put("Integer1", 2);
    map.put("Integer3", 3);
    map.put("Integer4", 4);
    map.put("Integer5", 5);
    System.out.println(map);
    Set  enteries = map.entrySet();
    Iterator it = enteries.iterator();
    String lastkey="";
    Entry entry;
    while(it.hasNext()){
        entry=(Entry) it.next();
        lastkey=(String) entry.getKey();
    }
map.remove(lastkey);
map.put("modifiedkey",0);   
System.out.println(map);                 
   }
}

输出为:

{Integer2=1, Integer1=2, Integer3=3, Integer4=4, Integer5=5}
{Integer2=1, Integer1=2, Integer3=3, Integer4=4, modifiedkey=0}

最新更新