在多维ArrayList中查找字符串

0x4*_*x45 2 java string contains list arraylist

情境

我有一个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)));
            }
        }
Run Code Online (Sandbox Code Playgroud)

我已经实现了一个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 + "]";

}
Run Code Online (Sandbox Code Playgroud)

ArrayList<HeaderAndBodyTestcase>其中HeaderAndBodyTestcase=

public HeaderAndBodyTestcase(final String xqueryFileName, final String testDir,
        final String firstInputFile, final String secondInputFile, final String expectedFile)
Run Code Online (Sandbox Code Playgroud)

cнŝ*_*ŝdk 5

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

但是,在您的情况下,它是Listof的HeaderAndBodyTestcase,因此您需要contains在您的HeaderAndBodyTestcase类中实现一个方法,以检查是否有任何类成员与searchd相等String

这应该是您的代码:

public boolean contains(String search){
    return this.xqueryFileName.equals(search) || this.testDir.equals(serach) || this.firstInputFile.equals(search) || this.secondInputFile.equals(search) || this.expectedFile.equals(search);
}
Run Code Online (Sandbox Code Playgroud)