在List中的String []中查找值并删除String []

时间:2016-10-04 18:55:00

标签: java arrays string list

List<String[]> data = new ArrayList<>();
data.add(new String[]{"bdc", "house2", "car2"});
data.add(new String[]{"abc", "house", "car"});

我不得不对此提出疑问:

  1. 如果找到例如,如果我有abc,那么值或第二个参数是什么,我想找到值house? (我不知道我的第二个论点当然只是第一个);

  2. 如果我再次举例String[],如何删除所有abc

1 个答案:

答案 0 :(得分:2)

  1. 要访问数组的给定索引,请使用方括号array[index],知道index0转到array.length - 1
  2. 要在迭代它时删除Collection的元素,可以使用iterator.remove()
  3. 所以你的代码看起来像:

    // Flag used to know if it has already been found
    boolean found = false;
    for (Iterator<String[]> it = data.iterator(); it.hasNext();) {
        String[] values = it.next();
        // Check if the first element of the array is "abc"
        if (values.length > 1 && "abc".equals(values[0])) {
            if (found) {
                // Already found so we remove it
                it.remove();
                continue;
            }
            // Not found yet so we simply print it
            System.out.println(values[1]);
            found = true;
        }
    }
    

    <强>输出:

    house
    

    响应更新:

    由于您似乎想在获得匹配时在列表中获取索引,因此您只需添加一个变量index,您将在for循环中增加该值。

    int index = 0;
    for (Iterator<String[]> it = data.iterator(); it.hasNext();index++) {
        ...
        if (values.length > 1 && "abc".equals(values[0])) {
            System.out.printf("abc found at %d%n", index);
            ...
        }
    }
    

    <强>输出:

    abc found at 1
    house