有一次比较array(1)compareto(array(1))这是一个问题吗?数量鸟是数组中元素的数量。我想删除数组中的重复字符串。它是可以修复还是应该接近。
for (i = 0; i <= amountBirds - 1; i++)
{
for (x = 1; x <= amountBirds; x++)
{
duplicate = birdArray[i].compareTo(birdArray[x]);
if (duplicate == 0)
{
birdArray[i] = birdArray[x];
}
}
}
答案 0 :(得分:2)
试试这个:
birdArray = new HashSet<String>(Arrays.asList(birdArray)).toArray(new String[0]);
答案 1 :(得分:2)
尝试Set或LinkedHashSet。将您的arraylist转换为Set,它会自动从List中删除副本,因为Set不允许重复值。但请记住,它是一个集合而不是列表。
答案 2 :(得分:2)
您可以在使用compareTo方法之前包含if检查
if ( i != x ) {
duplicate = birdArray[i].compareTo(birdArray[x]);
}
或者您可以在Java Collection库中使用Set。此方法不允许插入重复条目。因此,在插入本身时,您可以避免重复。
或者你保持birdArray原样。并使用Set作为中介来插入和删除重复项。
Set<String> birdSet = new LinkedHashSet<String>(); //to keep the order of the birds
for (i = 0; i < amountBirds; i++)
{
birdSet.add (birdArray[i]);
}
birdArray = Arrays.copyOf(birdSet.toArray(), birdSet.size(), String[].class);