从对象数组数据java中删除重复项

zah*_*in 0 java arrays object

我想知道如何删除对象中的重复项。

例如

cat c[] = new cat[10];

c[1].data = "ji";
c[2].data = "pi";
c[3].data = "ji";
c[4].data = "lp";

c[5].data = "ji";
c[6].data = "pi";
c[7].data = "jis";
c[8].data = "lp";

c[9].data = "js";
c[10].data = "psi"; 
Run Code Online (Sandbox Code Playgroud)

我想从对象数组中删除重复值。

感谢和前进

Pet*_*rey 5

我假设您要创建另一个无重复的数组。(因为您不能更改数组的大小)

您可以实现hashCode和equals并使用HashSet,但是如果没有这些,则可以创建Comparator。

但是,最简单的方法可能是使用“ Cat”类和“ cats”数组

Cat[] cats = { ... };
Set<String> datas = new HashSet<String>();
List<Cat> catList = new ArrayList<Cat>();
for(Cat cat: cats) if(datas.add(cat.data)) catList.add(cat);
Cat[] unqiueCats = catList.toArray(new Cat[catList.size()]);
Run Code Online (Sandbox Code Playgroud)