首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]Java实现数字不重复的5种技巧大揭秘

发布于 2025-06-19 19:54:06
0
12

在Java编程中,有时候我们需要处理数字不重复的情况,例如生成唯一的标识符、去除重复项或创建一个没有重复数字的序列。以下是一些实现数字不重复的技巧,这些技巧可以帮助你在不同的场景下解决问题。技巧一:使...

在Java编程中,有时候我们需要处理数字不重复的情况,例如生成唯一的标识符、去除重复项或创建一个没有重复数字的序列。以下是一些实现数字不重复的技巧,这些技巧可以帮助你在不同的场景下解决问题。

技巧一:使用HashSet

HashSet是一个基于哈希表的集合,它不允许重复元素。在Java中,你可以使用HashSet来确保数字的不重复。

import java.util.HashSet;
import java.util.Set;
public class UniqueNumbers { public static void main(String[] args) { Set numbers = new HashSet<>(); numbers.add(1); numbers.add(2); numbers.add(2); // 这将不会添加到集合中,因为数字2已经存在 for (int number : numbers) { System.out.println(number); } }
}

技巧二:使用Arrays.sort和循环检查

对于小范围的数字,你可以先将数字数组排序,然后通过循环检查来移除重复项。

import java.util.Arrays;
public class UniqueNumbers { public static void main(String[] args) { int[] numbers = {3, 6, 2, 6, 2, 8}; Arrays.sort(numbers); int j = 0; for (int i = 0; i < numbers.length - 1; i++) { if (numbers[i] != numbers[i + 1]) { numbers[j++] = numbers[i]; } } numbers[j++] = numbers[numbers.length - 1]; int[] uniqueNumbers = new int[j]; System.arraycopy(numbers, 0, uniqueNumbers, 0, j); for (int number : uniqueNumbers) { System.out.println(number); } }
}

技巧三:使用Stream API

Java 8引入了Stream API,它提供了一种声明式的方式来处理数据集合。你可以使用Stream来过滤掉重复的数字。

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class UniqueNumbers { public static void main(String[] args) { List numbers = Arrays.asList(1, 2, 3, 2, 1, 5, 5); List uniqueNumbers = numbers.stream() .distinct() .collect(Collectors.toList()); uniqueNumbers.forEach(System.out::println); }
}

技巧四:使用LinkedHashSet

LinkedHashSet结合了HashSet和LinkedList的特性,它基于哈希表实现,同时维护一个双向链表来记录插入顺序。这意味着它既可以快速查找,又可以保持元素的插入顺序。

import java.util.LinkedHashSet;
import java.util.Set;
public class UniqueNumbers { public static void main(String[] args) { Set numbers = new LinkedHashSet<>(); numbers.add(1); numbers.add(2); numbers.add(2); // 这将不会添加到集合中,因为数字2已经存在 numbers.forEach(System.out::println); }
}

技巧五:生成不重复的随机数

有时候,你可能需要一个不重复的随机数序列。你可以使用一个集合来存储已生成的随机数,并在生成新的随机数时检查它是否已存在。

import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class UniqueRandomNumbers { public static void main(String[] args) { Set numbers = new HashSet<>(); Random random = new Random(); while (numbers.size() < 10) { int number = random.nextInt(100); // 生成0-99之间的随机数 numbers.add(number); } numbers.forEach(System.out::println); }
}

这些技巧可以根据不同的场景和需求进行选择和使用。在处理大量数据时,考虑性能和内存使用也是非常重要的。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流