首先我创建了字符串的ArrayList:
List<List<String>> array1 = new ArrayList<List<String>>();
然后在用数据填充并进行打印之后:
[John, Smith, 120]
[Albert, Einstein, 170]
Run Code Online (Sandbox Code Playgroud)
现在我想循环遍历列表并与say进行比较,String[] array2 = {"Albert", "Einstein", "170"}到目前为止我已尝试过:
if (array1.get(i).equals(array2)) { blah }
但是这不起作用,我基本上想要遍历arraylist并找到我的array2是否匹配.我怎样才能做到这一点?
列表简单地不等于数组.最简单的解决方法是首先将数组包装在列表中:
if (array1.get(i).equals(Arrays.asList(array2))
Run Code Online (Sandbox Code Playgroud)
然后,将使用equals仅对每个项执行顺序相等性检查的实现.
如果你只是想找到第一个匹配的条目,那么indexOf根据路易斯的答案使用也会有效.
我强烈建议你不要array1在不是数组的情况下调用变量.
最后,如果您只是使用List<String>包装器来避免必须创建具有(比如)名称和年龄的真实数据结构,那么请不要:创建一个Person类,因此最终得到:
List<Person> people = new ArrayList<Person>();
Person testPerson = new Person("Albert", "Einstein", 170);
Run Code Online (Sandbox Code Playgroud)
......适当地实现平等和散列,你会很高兴.您的代码将是多简单的阅读和维护的方式.