-1

我想将另一个字符串作为哈希映射的 lastEntry 的键。

检查 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);

我的函数检查 lastEntry 的值并更改它:

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
}
4

2 回答 2

0

您可以使用模型类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 创建对象 demo = new Demo;

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

然后添加模型类来ArrayList喜欢这个namesList.add(demo);

现在您可以随心所欲地使用ArrayList.

于 2015-04-23T22:19:20.980 回答
0

这可以通过使用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}
于 2015-05-26T13:32:23.887 回答