不允许重复的数组(Java)

时间:2013-12-19 09:46:45

标签: java arrays

我确信这有一个简单的答案,因为我认为我以前曾经使用或听过它,但似乎无法找到它,可能是因为谷歌不懂英语。基本上我需要类似或不同于不允许重复值的数组(在Java中)。

示例:int [] example = {1,2,2,3,4,4}

将是{1,2,3,4}

希望这很清楚,即使谷歌不能理解人类也能理解。

6 个答案:

答案 0 :(得分:8)

您应该使用Set实现。而且Java中的数组也不能像集合一样,但是使用像HashSet这样的Set实现,可以管理集合中元素的唯一性。

答案 1 :(得分:1)

您可以使用HashSet。 对于整数,它将工作正常。但稍后如果您打算存储Objects,则应覆盖hashCode()equals()方法。因为HashSet在内部使用equals()hashcode()来检查是否相等。

Read More about hashcode and equals here

答案 2 :(得分:0)

尝试使用Set实施

例如:

    public static void main(String[] args) {
    Set<Integer> numbers = new HashSet<>();

    numbers.add(3);
    numbers.add(5);
    numbers.add(5);
    numbers.add(5);
    numbers.add(6);
    numbers.add(12);

    System.out.println(numbers);   
}

将产生:

[3, 5, 6, 12]

答案 3 :(得分:0)

 import java.util.HashSet;
 import java.util.Set;
 public static void main(String[] args) {
 Set<Integer> numbers = new HashSet<Integer>();

 numbers.add(3);
 numbers.add(5);
 numbers.add(5);
 numbers.add(5);
 numbers.add(6);
 numbers.add(12);

 System.out.println(numbers);   
 }
 Take this.you can get what you want to get.

答案 4 :(得分:0)

尝试使用Hashset

删除重复项代码
 public static Integer[] removeDuplicateUsingSet(Integer[] example) {
    List<Integer> inputList = Arrays.asList(example);
    Set<Integer> inputSet = new HashSet<Integer>(inputList);
    Integer[] ints = new Integer[inputSet.size()];
    int index = 0;
    for (Integer i : inputSet) {
        ints[index++] = i;
    }
    return ints;
}

public static void main(String[] args) {

    Integer[] example = { 1, 2, 2, 3, 4, 4 };
    example = removeDuplicateUsingSet(example);
    for(int i = 0 ;i < example.length;i++){
        System.out.println(example[i]);
    }
}

答案 5 :(得分:0)

如果可以在添加元素时使用哈希集,则不允许重复值,否则您可以像这样使用:

 Gson gson = new GsonBuilder().create();
 JsonArray customArray = gson.toJsonTree(list.getAsJsonArray();
 JSONArray jsonArray = new JSONArray(customArray.toString());  // here  i am getting out of memory
 schoolListObject.put("list", jsonArray);