gpt4 book ai didi

JAVA 数组列表 : How to know whether it contains a String array or not?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:10 29 4
gpt4 key购买 nike

import java.util.ArrayList;    
public class Test {
public static void main (String[] args){
ArrayList<String[]> a = new ArrayList<String[]>();
a.add(new String[]{"one", "abc"});
a.add(new String[]{"two", "def"});
if(a.contains(new String[]{"one", "abc"})){
System.out.println(true);
}else{
System.out.println(false);
}
}
}

控制台说“假”。我有一个 ArrayList,但无法检查它是否包含特定的 String 数组。怎么做以及为什么?

最佳答案

contains 使用 equals 方法实现检查对象是否相等。但是,对于数组,equals 等同于引用相等。 IE。 array1.equals(array2) 转换为 array1 == array2

在上面,传递给 contains 方法的 new String[]{"one", "abc"}) 将创建一个new 数组,这将不同于最初添加到 ArrayList 的数组。

检查的一种方法是遍历 ArrayList 中的每个数组并使用 Arrays.equals(array1, array2) 检查相等性:

for(String[] arr : a) {
if(Arrays.equals(arr, new String[]{"one", "abc"})) {
System.out.println(true);
break;
}
}

另一种方法是使用 ArrayUtils.isEquals来自 Apache commons-lang

关于JAVA 数组列表 : How to know whether it contains a String array or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26074214/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com