gpt4 book ai didi

java - 无法访问我的 boolean 列表

转载 作者:行者123 更新时间:2023-11-29 05:24:31 24 4
gpt4 key购买 nike

所以我有这个包含 boolean 数组的列表<>:

static List<boolean[]> myList = new ArrayList<>();

这些是我添加到列表中的数组:

boolean[] myBooleanArray = new boolean[8];

所以现在当我用 for() 循环遍历 myList 时,使用这个:

myList.get(i);

我在控制台的输出是这样的:

[Z@65e7c41f

但我也想进入这些对象。我该怎么做?

最佳答案

由于数组不会覆盖 Object 类中的方法,因此您将获得默认的 String 表示形式:

getClass().getName() + '@' + Integer.toHexString(hashCode())

如果要打印数组的内容,可以使用Arrays.toString() .

for(boolean[] arr: myList){
System.out.println(Arrays.toString(arr));
}


我不知道您要用 boolean 数组的 List 做什么,但请注意,您可能会遇到一些小惊喜:

public class Test {   
static List<boolean[]> myList = new ArrayList<>();

public static void main(String[] args){
boolean[] arr = {true, false};
boolean[] arr2 = {true, false};

myList.add(arr);
System.out.println(myList.contains(arr2)); //false
}
}

另一种方法是创建一个包装器类来包装您的 boolean 数组,您可以使用方法 Arrays.equals , Arrays.toStringArrays.hashcode正确实现 equalstoStringhashCode 方法。

class MyBooleanArray {
private boolean[] arr;

public MyBooleanArray(boolean[] arr) {
this.arr = arr;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Arrays.hashCode(arr);
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MyBooleanArray other = (MyBooleanArray) obj;
if (!Arrays.equals(arr, other.arr))
return false;
return true;
}

@Override
public String toString() {
return "MyBooleanArray [arr=" + Arrays.toString(arr) + "]";
}
}

还有主要的:

public class Test {   
static List<MyBooleanArray> myList = new ArrayList<>();

public static void main(String[] args){
boolean[] arr = {true, false};
boolean[] arr2 = {true, false};
myList.add(new MyBooleanArray(arr));
System.out.println(myList.contains(new MyBooleanArray(arr2))); //true
System.out.println(myList.get(0)); //MyBooleanArray [arr=[true, false]]
}
}

关于java - 无法访问我的 boolean 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23197128/

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