【问题标题】:Get certain value from arrayList从arrayList中获取特定值
【发布时间】:2016-06-01 09:49:56
【问题描述】:

编辑:

我试图创建一些可以做我想做的事情,但是我得到了一个错误

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)

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


我正在考虑如何根据我的输入字符串正确地制作一个获取某个 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
}

不胜感激!

【问题讨论】:

  • 您可以只使用Map&lt;String, Person&gt; 而不是List&lt;Person&gt;
  • 您只需要遍历列表并在找到所需内容时返回位置...

标签: java arraylist


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2014-05-04
    • 1970-01-01
    相关资源
    最近更新 更多