获取排序数组中不同元素的数量

时间:2012-02-11 14:45:38

标签: java arrays

  

可能重复:
  Java - Distinct List of Objects

我有一个巨大的排序数组(大约3000个字符串),  我需要为每个不同的字符串创建一个对象, 因此,我需要创建一个对象数组,其大小等于原始数组中的不同字符串。

有什么建议吗?

由于

3 个答案:

答案 0 :(得分:0)

我认为Set是您正在寻找的。试试自己,如果您需要任何帮助,请提出具体问题。

答案 1 :(得分:0)

伪代码:

previous = Null
sum_size = 0

for (String current: yourarray) {

    if (!current.equals(previous)) {
        sum_size += current.size()
    }
    previous = current
}

sum_size是数组中不同元素的添加大小。

答案 2 :(得分:0)

好吧,如果你需要不同的元素而不仅仅是数字,你可以使用Set

套装是:

  

不包含重复元素的集合。

您不断将元素添加到集合中,然后只查看集合包含的内容。

类似的东西:

public static String[] getDistinct(String[] input) {

    Set<String> distinct = new HashSet<String>();
    for(String element : input) {
        distinct.add(element);
    }

    return distinct.toArray(new String[0]);
}

用法:

String[] input = new String[] {"a", "b", "a", "c", "a", "b", "d"};
String[] distinct = getDistinct(input);

for(String element : distinct) {
    System.out.println(element);
}

结果:

  

d b c a

请注意,可能无法保留元素的顺序。

要查找不同元素的数量,请使用:

getDistinct(input).length