[英]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的:
Collections2.filter(Collection, Predicate)
, Iterables.filter(Iterable, Class)
, Iterables.filter(Iterable, Predicate)
你可以在这里找到更多的信息,甚至看看这个问题(你的问题是重复的):
更新:正如kleopatra让我意识到的那样,你可能正在使用普通的ListModel
。
您可以在创建JList时指定自定义模型,它可以是:
这取决于用例。 如果你只是想找个在模型方面的条目,你可以保持循环您ListModel
,或环比后面的数据结构ListModel
可以是常规List
的实施,然后你可以使用haylem建议的方法。
如果你想搜索你的JList
,并在视觉上向用户呈现搜索结果(例如突出显示它们并滚动到相关条目),我强烈建议你看一下支持这个的SwingX项目。框
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.