Java去除数组中重复元素的两种实现

今日去面试,被问到要求手写一段代码,实现去除数组中重复的元素。我的第一反应是用 Set,因为 Set中的元素是不能重复的,但是大叔又说不让用 Set。明明感觉很简单的一个算法题,但是最后也没能写的让人满意。

于是回来总结了以下两种方法来实现:

1. 利用 List 的 contains() 方法:

package com.czq.text;

import java.util.ArrayList;
import java.util.List;

public class RemoveSameNum2 {

	public static void main(String[] args) {

		int[] attr = { 1, 2, 3, 3, 5, 5, 7, 9 };
		List<Integer> list = new ArrayList<Integer>();
		for (int i : attr) {
			if (!list.contains(i)) {//boolean contains(Object o):如果列表包含指定的元素,则返回 true
				list.add(i);
			}
		}
		System.out.println(list);
	}

}

2. 使用 Set 接口:

package com.czq.text;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class RemoveSameNum {

	public static void main(String[] args) {

		int[] attr = { 1, 2, 3, 3, 5, 5, 7, 9 };
		List<Integer> list = new ArrayList<Integer>();
		for (int i : attr) {
			list.add(i);
		}
		Set<Integer> set = new HashSet<Integer>();
		set.addAll(list);
		System.out.println(set);
	}

}

经过测试,以上两种方法均能正确输出:

[1, 2, 3, 5, 7, 9]

           


  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用以下几种方法来去除Java数组中重复数据: 方法一:使用List集合 可以创建一个List集合,然后遍历数组中元素,判断该元素是否已存在于集合中,如果不存在则将其添加到集合中。最后,将集合转换回数组即可得到去重后的数组。\[1\] 方法二:使用两层循环 可以使用两层循环,将每个元素与其他元素进行比较,找出是否重复,并设置一个标志记录是否重复。如果不重复,则将其放入新的数组中。最后,输出新的数组即可得到去重后的数组。\[1\] 方法三:使用HashMap 可以利用HashMap来存储数组中元素,由于HashMap的特性是不允许重复的键,所以重复元素会被自动去除。最后,将HashMap中的键转换为数组即可得到去重后的数组。\[2\] 方法四:使用LinkedHashSet 如果想要保留原本的顺序,可以使用LinkedHashSet,它具有有序且不重复的特点。可以创建一个LinkedHashSet,然后遍历数组中元素,将其添加到LinkedHashSet中。最后,将LinkedHashSet转换为数组即可得到去重后的数组。\[3\] 以上是几种常见的去除Java数组中重复数据的方法,你可以根据具体的需求选择适合的方法来使用。 #### 引用[.reference_title] - *1* *3* [Java基础:数组去重方法](https://blog.csdn.net/wangshiqi666/article/details/130228023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [java删除数组中重复元素的方法](https://blog.csdn.net/sdrfghb/article/details/125757818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值