Android 从ArrayList中删除重复项<;定制类>;安卓
我只能从sdcard加载歌曲,并获得他们的专辑列表,但其中包含重复的内容。如何从我的相册列表中删除重复项。My Album list是ArrayList的一种类型,Album类中包含两个字符串变量。Android 从ArrayList中删除重复项<;定制类>;安卓,android,listview,arraylist,duplicates,Android,Listview,Arraylist,Duplicates,我只能从sdcard加载歌曲,并获得他们的专辑列表,但其中包含重复的内容。如何从我的相册列表中删除重复项。My Album list是ArrayList的一种类型,Album类中包含两个字符串变量。 谢谢您的帮助。对于您的自定义类,添加一个equals和hashCode方法 public static class Custom { public final String item1; public final String item2; public Custom(Str
谢谢您的帮助。对于您的自定义类,添加一个equals和hashCode方法
public static class Custom
{
public final String item1;
public final String item2;
public Custom(String i1, String i2) {
item1 = i1;
item2 = i2;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Custom custom = (Custom) o;
if (!item1.equals(custom.item1)) {
return false;
}
if (!item2.equals(custom.item2)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = item1.hashCode();
result = 31 * result + item2.hashCode();
return result;
}
}
然后在添加之前,请检查Arraylist在添加之前是否不包含自定义列表
final ArrayList<Custom> customs = new ArrayList<Custom>();
Custom one = new Custom("aa", "bb");
Custom two = new Custom("aa", "bb");
if (!customs.contains(one)) {
arraylist.add(one);
}
if (!customs.contains(two)) {
arraylist.add(two);
}
final ArrayList customs=new ArrayList();
定制一=新定制(“aa”、“bb”);
定制二=新定制(“aa”、“bb”);
如果(!customs.contains(一个)){
arraylist.add(一个);
}
如果(!海关包含(两个)){
添加(两个);
}
可能重复的。。。当然。。。这是行不通的。。。显然,它还需要一件事。。。可以比较项目的东西…这不是那个问题的重复。我可以从预定义类的ArrayList中删除元素,但我的问题是使用包含多个变量的自定义类使列表唯一。。。但你还是应该知道集合是如何比较对象的。。。那么看看@petey answer…@Selvin如果这对你有用,你能接受这个答案吗?我不能。。。我已经知道了。。。而且。。。我没问…:P好吧,至少我可以投赞成票:P