我想把另一个字符串作为哈希映射的lastEntry的键。
检查lastEntry的值并更改后,我无法使用setKey或其他func来更改我想要更改lastEntry的键。
EditText name; // put that as the key
Map<String,Integer> Names = new HashMap<String,Integer>(10);
// .
// .
// .
name = (EditText) findViewById(R.id.namep);
我的func检查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
}
答案 0 :(得分:0)
您可以使用Model类和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 = new Demo;
demo.name = "";
demo.value = 1;
然后将模型类添加到ArrayList
,如namesList.add(demo);
现在,您可以使用ArrayList
执行任何操作。
答案 1 :(得分: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}