数组中的元素排序和去重总结

一、使用List来操作

public class ArraySort {

	public static void main(String[] args) {
		//定义一个数组
		Integer [] str = {1,3,66,4,78,55,9,4,3,99};
		//将数组转成集合
		List list = Arrays.asList(str);
		//利用Collections工具类进行排序
		Collections.sort(list);
		System.err.println("排序"+list);
	    List newlist=new ArrayList();
		for(Integer str2:list)
	     {	//判断新集合中的元素是否和list中遍历出来的元素相同,如果不同就添加到newlist中
	         if(!newlist.contains(str2))
	        	 newlist.add(str2);
	     }
	     System.out.println("去重:"+newlist.toString());    

		
	}
	
}
运行结果:
排序[1, 3, 3, 4, 4, 9, 55, 66, 78, 99]
去重:[1, 3, 4, 9, 55, 66, 78, 99]

二、使用List和Set来操作

public class ArraySort {

	public static void main(String[] args) {
		//定义一个数组
		Integer [] str = {1,3,66,4,78,55,9,4,3,99};
		//将数组转成集合
		List list1 = Arrays.asList(str);
		 Set set=new HashSet(list1);
		 List list2 = new ArrayList();
		 list2.addAll(set);
         System.err.println("去重:"+list2);
         Collections.sort(list2);
         System.out.println("排序:"+list2);
	}
	
}

运行结果:
去重:[1, 3, 55, 4, 99, 66, 9, 78]
排序:[1, 3, 4, 9, 55, 66, 78, 99]

三、List排序

//假设集合中有很多元素
List uPhotos = new ArrayList();
Collections.sort()默认是升序,降序则使用o2和o1比较。
 Collections.sort(uPhotos, new Comparator() {
					@Override
					public int compare(Object o1, Object o2) {
						UserPhotoVO user1 = (UserPhotoVO) o1;
						UserPhotoVO user2 = (UserPhotoVO) o2;
						return user2.getCreateDate().compareTo(//根据时间降序排
								user1.getCreateDate());
					}
				});


你可能感兴趣的:(随笔)