繁体   English   中英

在JLIST中按房源查找物品

[英]Find items by property in JLIST

我有一个JList peopleList,填充了Person类的对象

class Person
{
  private String name;
  private String age;

  private void setName(String value)
  {
    name = value;
  }

  private String getName()
  {
    return name;
  }
}

目前找到一个姓名的人

public boolean personByNameExists(String name)
{
  for(int index = 0 ; index < peopleList .getModel().getSize() ; index ++)
  {
    Person pl = (Person) peopleList .getModel().getElementAt(index);

    if( p1.getName().equals(name))
    {
      return  true;
    }
  }
}

我想知道是否有办法在整个列表中执行相同的操作。 我来自.Net的背景和C#我会使用LINQ在Java中有类似的东西吗?

您正在寻找典型的过滤功能。

我建议你看一下Google Guava的:

你可以在这里找到更多的信息甚至看看这个问题(你的问题是重复的):

更新:正如kleopatra让我意识到的那样,你可能正在使用普通的ListModel

您可以在创建JList时指定自定义模型,它可以是:

  • 实现Collection或Iterable接口,
  • 或者提供一种方法来返回由所需属性过滤的数据视图。

这取决于用例。 如果你只是想找个在模型方面的条目,你可以保持循环您ListModel ,或环比后面的数据结构ListModel可以是常规List的实施,然后你可以使用haylem建议的方法。

如果你想搜索你的JList ,并在视觉上向用户呈现搜索结果(例如突出显示它们并滚动到相关条目),我强烈建议你看一下支持这个的SwingX项目。框

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM