导语:在java开发中,数组操作是非常常见的操作之一。而数组去重则是经常遇到的问题之一。在本文中,我们将介绍五种常用的方式来实现java数组去重,帮助你从入门到精通数组去重的操作。
一、使用set集合
常见的方式是利用set集合的特性来实现数组去重。set集合是不允许重复元素的集合,所以将数组的元素放入set集合中,自动去除重复元素。
代码示例:
import java.util.*;public class arrayduplicateremover { public static void main(string[] args) { // 原始数组 integer[] array = {1, 2, 3, 4, 3, 2, 1}; // 利用set集合去重 set<integer> set = new hashset<>(arrays.aslist(array)); // 去重后的数组 integer[] result = set.toarray(new integer[0]); // 打印结果 system.out.println(arrays.tostring(result)); }}
二、利用循环遍历
另一种常见的方式是利用循环遍历数组,逐个判断元素是否重复,并将不重复的元素放入新的数组中。
代码示例:
import java.util.arrays;public class arrayduplicateremover { public static void main(string[] args) { // 原始数组 integer[] array = {1, 2, 3, 4, 3, 2, 1}; // 借助循环遍历去重 integer[] result = new integer[array.length]; int index = 0; for (integer num : array) { boolean isduplicate = false; for (int i = 0; i < index; i++) { if (num == result[i]) { isduplicate = true; break; } } if (!isduplicate) { result[index++] = num; } } // 去重后的数组 result = arrays.copyof(result, index); // 打印结果 system.out.println(arrays.tostring(result)); }}
三、利用stream流
在java 8之后,引入了流式操作的概念,可以方便地处理集合和数组。利用stream流的distinct()方法可以去除重复元素。
代码示例:
import java.util.arrays;public class arrayduplicateremover { public static void main(string[] args) { // 原始数组 integer[] array = {1, 2, 3, 4, 3, 2, 1}; // 利用stream流去重 integer[] result = arrays.stream(array).distinct().toarray(integer[]::new); // 打印结果 system.out.println(arrays.tostring(result)); }}
四、利用hashmap
使用hashmap来实现数组去重也是一种常用的方式。遍历数组,将数组元素作为key放入hashmap中,重复的元素会被覆盖,最后将hashmap中的key取出即可。
代码示例:
import java.util.arrays;import java.util.hashmap;import java.util.map;public class arrayduplicateremover { public static void main(string[] args) { // 原始数组 integer[] array = {1, 2, 3, 4, 3, 2, 1}; // 利用hashmap去重 map<integer, integer> map = new hashmap<>(); for (integer num : array) { map.put(num, num); } integer[] result = map.keyset().toarray(new integer[0]); // 打印结果 system.out.println(arrays.tostring(result)); }}
五、利用递归
递归是一种高级的编程技巧,可以利用递归实现数组去重。每次递归将数组的第一个元素与后面的元素比较,若相同则去掉后面的元素,直至递归结束。
代码示例:
import java.util.arrays;public class arrayduplicateremover { public static void main(string[] args) { // 原始数组 integer[] array = {1, 2, 3, 4, 3, 2, 1}; // 利用递归去重 integer[] result = removeduplicates(array, array.length); // 打印结果 system.out.println(arrays.tostring(result)); } public static integer[] removeduplicates(integer[] array, int length) { if (length == 1) { return array; } if (array[0] == array[length-1]) { return removeduplicates(arrays.copyof(array, length-1), length-1); } else { return removeduplicates(array, length-1); } }}
结语:通过以上五种常用的方式,我们可以轻松地实现java数组去重操作。无论是利用set集合、循环遍历、stream流、hashmap还是递归,都能帮助我们更好地处理数组去重的需求。希望本文能够对你从入门到精通java数组去重提供帮助。
以上就是java数组去重:五种常用方法的入门和精通的详细内容。
