数组去重复的方法

您所在的位置:网站首页 list转换成map 数组去重复的方法

数组去重复的方法

2023-03-31 20:31| 来源: 网络整理| 查看: 265

数组去重的几种方法: 方法一:list集合

  只需要创建一个集合,然后遍历数组逐一放入集合,只要在放入之前用contains()方法判断一下集合中是否已经存在这个元素就行了,然后用toArray转成数组一切搞定。

public static void ifRepeatList(Object[] arr) {//创建一个集合List list = new ArrayList();for (int i = 0; i list.add(arr[i]);}}//toArray()方法将集合转换成数组Object[] newarr = list.toArray();/* for (int i = 0; i //声明一个flagboolean flag=true;//内层循环将原数组逐个比较for (int j = i+1; j flag=false;break;}}//判断flag是否被改变,如果没有就是没有重复元素if (flag){//将原数组的元素赋值给临时的数组temparr[m]=arr[i];//走到这里说明当前数组没有重复元素,那么记录自增:m++m++;}}//声明需要返回的数组,这个数组就是去重后的数组Object[] newarr = new Object[m];//用arraycopy方法将刚才去重的数组拷贝到新数组并返回System.arraycopy(temparr,0,newarr,0,m);return newarr;} 方法三:map集合

  利用Map集合键的不可重复性,遍历数组,把每个数组元素都传进Map集合,得到乱序而不重复的Map集合;再用Map的keySet().toArray()方法把集合转换成数组

public static void ifRepeatMap(Object[] arr) {//创建一个map集合Map map = new HashMap();//遍历数组,利用map集合的不可重复特性,去掉重复元素,将没有重复的元素放入map集合中for (Object obj : arr) {map.put((String) obj,obj);}//利用keySet().toArray()方法将集合转换为数组Object[] newarr = map.keySet().toArray(new Object[1]);System.out.println("方法三:"+Arrays.toString(newarr));} 方法四:set集合

  最简单的方法就是利用Set集合无序不可重复的特性进行元素过滤。

public static void ifRepeatSet(Object[] arr){//实例化一个set集合HashSet set=new HashSet();//遍历数组并存入集合,如果元素已存在则不会重复存入for (int i = 0; i LinkedHashSet hashSet=new LinkedHashSet();for (int i = 0; i String[] arr = {"a", "b", "c", "c", "d", "e", "e", "e", "a"};//方法一ifRepeatList(arr);System.out.println("********分割线**********");//方法二System.out.println("方法二:"+Arrays.toString(ifRepeatByArr(arr)));System.out.println("********分割线**********");//方法三ifRepeatMap(arr);System.out.println("********分割线**********");//方法四ifRepeatSet(arr);System.out.println("********分割线**********");//方法五ifRepeatLinkHashSet(arr);} 测试结果

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3