在多维ArrayList

时间:2017-07-20 08:36:32

标签: java string list arraylist contains

方案

我有ArrayList<[String, String, String, String]>来存储数据 现在,我正在尝试检查ArrayList是否包含String

for(String i : checkArtefakts){
            System.out.println(i);
            if(headerAndBodyTestSuites.toString().contains(i)){
                System.out.println(i + "  " + headerAndBodyTestSuites.indexOf(headerAndBodyTestSuites.contains(i)));
            }
        }

我已经实施了toString()方法,但它也没有解决我的问题。

问题

如何查看每个Element of ArrayList ([String,String,String,String])

如果它包含我的search String

为什么它甚至不能在我的toString()方法中找到它?

public String toString() {
    return "[XQ: " + xqueryFileName + "] [Path: " + testDir + "] [INP: " + firstInputFile
        + "] [INP: " + secondInputFile + "] [EXP: " + expectedFile + "]";

}

实施例

ArrayList<HeaderAndBodyTestcase>其中HeaderAndBodyTestcase =

public HeaderAndBodyTestcase(final String xqueryFileName, final String testDir,
        final String firstInputFile, final String secondInputFile, final String expectedFile)

3 个答案:

答案 0 :(得分:4)

如果您使用的是List<String[]>,则可以使用Arrays.asList()来检查String[]是否包含使用.contains()方法的字符串。

但在您的情况下,它是List的{​​{1}},因此您需要在HeaderAndBodyTestcase课程中实施contains方法,以检查是否有任何类成员等于搜索的HeaderAndBodyTestcase

这应该是你的代码:

String

答案 1 :(得分:2)

您需要在类中实现一个方法,该方法将查看搜索字符串是否属于以下属性之一:

public boolean objectContainString(String search) {
     return Arrays.asList(xqueryFileName, testDir, firstInputFile, secondInputFile, expectedFile)
                  .contains(search);
}

使用如下:boolean bool = list.stream().anyMatch(e -> e.objectContainString(search));

答案 2 :(得分:0)

你可以做一些简单的事情:

    String searchedString = "SomeString";
    boolean found = false;
    for(String string : arrayList) {
          if (searchedString.equals(string)){
              found = true;
          }
    }

或者你可以使用java stream API。 (需要Java 8)

    List<String> list = new ArrayList<>();
    list.add("SOME_STRING_1");
    list.add("SOME_STRING_2");
    list.add("SOME_STRING_3");
    String searchString = "SOME_STRING...";
    if(list.stream().anyMatch((string)->string.equals(searchString))) {
        // The string was in the list
    } else {
        // The string was not in the list
    }

其中arrayList包含您的字符串。我不确定你的意思是ArrayList&lt; [String,String,String,String]&gt;,但这可能就是你要找的。