Java利用Map 、Set特性进行数组去重排序

在编写js代码的时候 发现可以通过json的特性排除数据重复,实现快速去重。

然后心血来潮java中Map也有这个特性, 所以使用java方式实现去重的算法,

代码比较简单,直接上代码:

package org.jshand.test;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;


public class Arrat {

	
	
	/**
	 * 数组排序的写法
	 * @param array
	 * @return
	 */
	public static Integer[] unique(int[] array){
		
		Map<Integer,Object> map = new HashMap();
		
		
		/*将所有元素放到Map的Key中    得到去重复的key集合**/
		for(int el : array){
			map.put(el, true);
		}
		
		/*将Key中所有元素集合转换成数组**/
		Set<Integer> set = map.keySet();
		Integer[] a = new Integer[set.size()];
				
		//返回泛型数组
		return map.keySet().toArray(a);
	}
	
	
	
	/**
	 * 测试函数
	 * @param args
	 */
	public static void main(String[] args) {
		//定义冗余数组
		int[] array = {6,8,3,4,1,2,7,8,10,3,4,8};
		
		//获取去重数组
		Integer[] uniqueArray = unique(array);
		
		//打印下结果
		for (Integer integer : uniqueArray) {
			System.out.println(integer);
		}
		
		
	}
	
}

猜你喜欢

转载自314649444.iteye.com/blog/2280428