java去除数组中的重复数字_java字符串转换为字符数组

java去除数组中的重复数字_java字符串转换为字符数组在 Java 中 去除数组中的重复素可以通过以下几种方法实现 1 使用 HashSet 或 LinkedHashSe HashSet 不保留素插入顺序 适合不关心素顺序的情况 LinkedHashSe 保留素插入顺序 适合需要保持原始顺序的情况 javaimport java util Arrays import java util HashSet import

在Java中,去除数组中的重复素可以通过以下几种方法实现:

1. 使用`HashSet`或`LinkedHashSet`:

`HashSet`不保留素插入顺序,适合不关心素顺序的情况。

`LinkedHashSet`保留素插入顺序,适合需要保持原始顺序的情况。

 import java.util.Arrays; import java.util.HashSet; import java.util.LinkedHashSet; public class RemoveDuplicatesFromArray { public static void main(String[] args) { Integer[] arr = {1, 2, 3, 4, 3, 2, 1}; Set 
  
    
  
    set = new HashSet<>(); 
   for (int num : arr) { set.add(num); } Integer[] distinctArr = set.toArray(new Integer); System.out.println(Arrays.toString(distinctArr)); } } 

2. 使用`Arrays.stream().distinct().toArray()`方法(Java 8及以上版本):

 import java.util.Arrays; public class RemoveDuplicatesFromArray { public static void main(String[] args) { Integer[] arr = {1, 2, 3, 4, 3, 2, 1}; Integer[] distinctArr = Arrays.stream(arr).distinct().toArray(Integer[]::new); System.out.println(Arrays.toString(distinctArr)); } } 

3. 双层循环检查法:

 public class RemoveDuplicatesFromArray { public static void main(String[] args) { Integer[] arr = {1, 2, 3, 4, 3, 2, 1}; int[] distinctArr = new int[arr.length]; int index = 0; for (int i = 0; i < arr.length; i++) { boolean isDuplicate = false; for (int j = i + 1; j < arr.length; j++) { if (arr[i].equals(arr[j])) { isDuplicate = true; break; } } if (!isDuplicate) { distinctArr[index++] = arr[i]; } } distinctArr = Arrays.copyOf(distinctArr, index); System.out.println(Arrays.toString(distinctArr)); } } 

4. 使用`System.arraycopy`方法:

 public class RemoveDuplicatesFromArray { public static void main(String[] args) { Integer[] arr = {1, 2, 3, 4, 3, 2, 1}; int[] distinctArr = new int[arr.length]; int j = 0; for (int i = 0; i < arr.length; i++) { boolean isDuplicate = false; for (int k = i + 1; k < arr.length; k++) { if (arr[i].equals(arr[k])) { isDuplicate = true; break; } } if (!isDuplicate) { distinctArr[j++] = arr[i]; } } int[] finalDistinctArr = new int[j]; System.arraycopy(distinctArr, 0, finalDistinctArr, 0, j); System.out.println(Arrays.toString(finalDistinctArr)); } } 

以上方法均可用于去除数组中的重复素,具体选择哪种方法取决于你对素顺序的保留需求以及是否关心性能。`HashSet`和`LinkedHashSet`方法在大多数情况下性能较好,而`Arrays.stream().distinct().toArray()`方法则利用了Java 8的流特性,代码简洁。双层循环检查法虽然直观,但效率较低。使用`System.arraycopy`可以在原数组的基础上直接操作,减少内存分配。

请根据你的具体需求选择合适的方法

编程小号
上一篇 2024-12-24 20:08
下一篇 2024-12-24 20:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/145285.html