从arrayList获取特定值

时间:2016-06-01 09:49:56

标签: java arraylist

编辑:

我尝试创建可以做我想做的事情,但是我收到了错误

String namn = JOptionPane.showInputDialog("Write persons name");
String dele = JOptionPane.showInputDialog("Yes or no? (Ja/nej)");
int pos = personLista.indexOf(namn);
personLista.get(pos).setDelegat(dele);
System.out.println("Done!");

错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at finnish.jovo.main(jovo.java:29)

Doest意味着它无法在列表中找到该名称?

我正在考虑如何正确地创建一个取决于我的输入字符串来获取某个arrayList项的方法。

所以,如果我是f.e.试图通过在输入框中写下名称来获得所述值。

对象:

protected String namn, enamn, kårtill, mötdel;
public Person(String namn, String enamn, String kårtill, String mötdel) {
    this.namn=namn;
    this.enamn=enamn;
    this.kårtill=kårtill;
}
public String getNamn(){
    return namn;
}
public String getKår() {
    return kårtill;
}
public void setNamn(String namn){
    this.namn=namn;
}
public void setDelegat(String mötdel) {
    this.mötdel=mötdel;
} 

列表:

static List<Person> personLista =new ArrayList();

基本上我试图用一些有点胡言乱语的代码来完成:

String name = JOptionPane.showInputDialog("Write persons name");
if (name exists in list) {
get position of name
String truefalse = JOptionPane.showInputDialog("True or false?");
setDelegat(truefalse) in said item
}

非常感谢一些帮助!

1 个答案:

答案 0 :(得分:0)

使用glazedlist并应用filter.Using glazed list过滤器可以实现这一点。检查http://www.glazedlists.com