java去除数组中的重复元素

java去除数组中的重复元素

String[] data = {"江剑臣","武凤楼","李鸣","曹玉","侯国英","李文莲","马小倩","李鸣","曹玉","侯国英"};

1.用HashSet(去除重复元素后,数组也无序)

/**
  * HashSet方法(去除重复元素后数组无序)
  * @param data
  * @return
  */
 public static String[] getUniqueHashSet(String[] data){
      Set<String> set =  new  HashSet<String>(Arrays.asList(data)); 
      String[] oArray = set.toArray(new String[] {});   
      return oArray;
 }

 

public static String[] getUniqueHashMap(String[] data){
  List<String> list = Arrays.asList(data);
  Iterator<String> it = list.iterator();
  Map<String,String> map = new HashMap<String,String>();
  while(it.hasNext()){
   String str = it.next();
   String strMap = map.get(str);
   if(strMap==null){
    map.put(str, str);
   }
  }
  List<String> list2 =  new  ArrayList<String>(map.values());
  String[] newData =  list2.toArray(new String[] {});
  return newData;
 }

可以使用以下几种方法来去除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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值