首页 > 解决方案 > 从 ArrayList (java) 中获取元素

问题描述

挣扎于可能是一个简单的查询来匹配并返回ArrayList.

我首先将 a 存储HashSetArrayList因为HashSet没有 get 方法,然后检查ArrayList(其中包含正确的元素,套接字引用字符串)。

List theseSocks = new ArrayList(NodeConnMaster.sockList);

System.out.println("array list contains " + theseSocks);

然后我想遍历并在元素中找到匹配的 ipAddress,一旦找到,就为整个元素设置一个变量,比如 -

for (int i =0; i<  theseSocks.size(); i++) {
   if (theseSocks.toString().contains(ipAddress)) {
       int element = theseSocks.get();
       System.out.println("the element is " + element);
   }
}

但似乎 get 需要一个索引位置,我试图根据字符串内容而不是索引来获取。

有没有比删除除匹配元素之外的所有元素然后返回 index 更简单的方法0

或者ArrayList不是要走的路。

解决方案是,在 SBylemans 的帮助下——

Object currentSock = null;     
for (int i =0; i<  theseSocks.size(); i++)
{
currentSock = theseSocks.get(i);
if (currentSock.toString().contains(ipAddress))
    {
    System.out.println("the element is " +currentSock);
    break;
    }
}

问候拉尔夫

标签: javaarraylist

解决方案


您可以使用 Java8 的流来过滤所需的元素,例如:

List wantedList = theseSocks.stream()
.filter(e ->e.toString().contains(ipAddress))
.collect(Collectors.toList())

推荐阅读