由于数组中的equals函数仅检查实例,因此它不适用于Set。因此,我想知道如何在Java中制作一组数组?
一种可能的方法是将每个数组放在一个对象中,并为该类实现equals函数,但这会降低性能吗?
由于ArrayList类已经包装了一个数组,因此您可以扩展它并覆盖equals
and hashCode
方法。这是一个示例:
public MyArrayList extends ArrayList<MyClass> {
@Override
public boolean equals(Object o) {
if (o instanceof MyArrayList) {
//place your comparison logic here
return true;
}
return false;
}
@Override
public int hashCode() {
//just a sample, you can place your own code
return super.hashCode();
}
}
更新:
您甚至可以重写它以用于一般用途,只需将代码更改为:
public MyArrayList<T> extends ArrayList<T> {
//overrides the methods you need
@Override
public boolean equals(Object o) {
if (o instanceof MyArrayList) {
//place your comparison logic here
return true;
}
return false;
}
}
问题内容: 我想创建一个布尔数组,该数组的大小将为用户输入。例如-用户可能会输入一个大数字,例如1000000000000; 所以然后我必须创建一个大小为1000000000000的布尔数组。我面临的问题是,我无法将输入存储为int,因为它不能容纳这么大的数字- 因此我无法创建该数组。Double是一个我可以将输入数字存储为double,但是我不知道如何创建double大小的数组。这就是- 如果目
问题内容: 假设地,我有5个字符串数组对象: 我希望另一个数组对象包含这5个字符串数组对象。我该怎么做?我可以把它放在另一个数组中吗? 问题答案: 像这样: 要么 (后一种语法可以用于变量声明之外的赋值中,而较短的语法仅适用于声明。)
问题内容: 我需要为正在进行的项目制作一个相当大的二维数组的副本。我有两个2D阵列: 我也有两种方法来进行复制。我需要复制数组,因为当前会定期更新。 和 但是,这不起作用。如果我叫old,对current进行更新,然后再调用keepold,则current不等于原来的值。为什么会这样呢? 谢谢 问题答案: 或使两个数组引用相同的东西,因此,如果你随后修改,也会被修改。要将一个数组的内容复制到另一个
所以我需要制作一个彩票游戏的程序。 我的代码支持4个游戏,6-42,MegaLotto(6-45),SuperLotto(6-49)和GrandLotto(6-55)它会询问要玩哪个游戏,6-42输入1等等。 游戏共有10名玩家,每个玩家的彩票中都有不重复的随机数字。(例如玩家1:1,2,3,4,5,6玩家2:2,3,4,5,6,7以此类推。) 有一个赢的组合(例如赢的组合:1,2,3,4,5,6
问题内容: 如果我使用List,Vector之类的普通类,则会得到一个返回所考虑类的长度的函数,但是如果我使用一个类的数组或默认数据类型,则会得到一个公共成员的长度,该长度返回当前类的长度。数组的长度。 这是为什么?我的意思是数组不是自己的类,不是吗?因此,如果它不是类,则不能有成员变量。我不知道如何在后台处理(字节码)。我知道在内存中的数组存储有指向数组第一个元素的指针,并且内存指针被移至索引(
在C中,我有两个字符数组: 如何将