我对此感到困惑,并希望看看这是否是解决我问题的好方法。
我将首先解释该程序的工作原理。
我有一个只是一个键值对的类:
public class KeyValuePair {
private final String name;
private final String value;
public KeyValuePair(String n, String v) {
name = n;
value = v;
}
I have another class called List that uses the key value pair.
public class myList {
private List<KeyValuePair> myList = new ArrayList<KeyValuePair>();
public myList(List<KeyValuePair> nvp) {
List = nvp;
}
public List<KeyValuePair> getList() {
return myList;
}
}
因此,在我的程序中,我创建了一个List对象,并使用键值对填充它并查看新的List(kvp)。
public myList pullData(){
Final myList<KeyValuePair> nvp = new ArrayList<KeyValuePair>();
List<String[]> results = getResults()
for(String[] str : results)
{
KeyValuePair kvp = new KeyValuePair(str[0], str[1]);
nvp.add(kvp)
}
}
return new myList(nvp)
}
现在我遇到了需要更新每对值的情况。钥匙保持不变。
最初我创建了一个newList对象,并使用更新的密钥对值填充,但是后来应该有一个更好的方法,可能在List对象中创建更新或setter方法来执行此操作。
哪个更好创建新对象或更新?我认为更新键值对中的值,但是,我不知道如何做到这一点。
非常感谢任何帮助或建议。
答案 0 :(得分:0)
然后,您可以根据需要设置键和值:
public class KeyValuePair {
private String name;
private String value;
public KeyValuePair(String n, String v) {
name = n;
value = v;
}
public String getName(){
return name;
}
public String getValue(){
return value;
}
public void setName(String n){
name = n;
}
public void setValue(String v){
value = v;
}
}
然而,这些列表永远不会像Java中已经存在的地图那样有用。
答案 1 :(得分:0)
丢失最终修饰符并为字段创建漂亮的getter和setter
public class KeyValuePair {
private String name;
private String value;
public KeyValuePair(String n, String v) {
name = n;
value = v;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
然后你可以,例如在您的值中添加加号:
public void update(List<KeyValuePair> pairs) {
for (KeyValuePair kvp: pairs) {
kvp.setValue(kvp.getValue() + "+");
}
}
答案 2 :(得分:0)
只需在我的键值对类中添加一个setter即可解决此问题。不太清楚为什么我之前没有看到,出于某种原因,我认为我需要在myList类中做到这一点。
public void setValue (String newValue){
value = newValue;
}