我现在正在学习Java中的列表。我无法将两个列表相互比较。我想做的是,如果两个列表具有相同的名称,则返回 true,但它会一直返回 false。在我的类示例中,DVD1
和 DVD3
应该具有相同的名称。 DVD
是一张CD
和一本IBook
。因此,DVD1
是 CD1
,其名称为 S23
。 DVD3
是CD2
,其名称为S23
。它应该返回 true。我想我必须以某种方式合并 equalname
(我用来比较 CD 类中的两张 CD 的方法)。我该怎么办?
import tester.Tester;
interface IBook{
//return name
public boolean samename(IBook that);
}
class CD{
String name;
String color;
CD(String name, String color){
this.name=name;
this.color=name;
}
public String returnname(){
return this.name;
}
public boolean equalname (CD that){
return this.name == that.name;
}
}
class mtlob implements IBook{
public String returnname(){
return "";
}
public boolean samename(IBook that){
return false;
}
}
class DVD implements IBook{
CD first;
IBook rest;
DVD(CD first, IBook rest){
this.first=first;
this.rest=rest;
}
public boolean samename(IBook that){
return this.first.equals(that); //this.rest.samename(that);
}
}
class ExamplesX{
CD CD1 = new CD ("S23", "blue");
CD CD2 = new CD ("S23", "red");
CD CD3 = new CD ("cs2, ", "black");
CD CD4 = new CD ("HFF", "black");
mtlob empty = new mtlob ();
IBook DVD1 = new DVD (this.CD1, empty);
IBook DVD2 = new DVD (this.CD3, this.DVD1);
IBook DVD3 = new DVD (this.CD2, this.DVD1);
boolean test(Tester t){
return
t.checkExpect(this.CD1.equalname(CD2), true)&&
t.checkExpect(this.DVD1.samename(DVD3), true);
} }
最佳答案
使用 equals 方法而不是使用 ==
string1.equals(string2)
关于java - 关于java中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21585253/