// list元素去重
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
// list元素属性去重
Map<String, String> map = new HashMap();
for (int i = 0; i < AList.size(); i++) {
A a = AList.get(i);
map.put(a.getName(), tower.getNum());// 以Name属性去重
}
// 排序
Collections.sort(AList, new Comparator<A>() {
@Override
public int compare(A a1, A a2) {
// 先按照Id比,数值形式
if(a1.getId > a2.getId){
return 1;
}
if(a1.getId > a2.getId){
return -1;
}
// 再按照Name比,字符串形式
if(a1.getName().compareTo(a2.getName()) >0){
return 1;
}
if(a1.getName().compareTo(a2.getName()) >0){
return -1;
}
return 0;
}
});
// list元素属性排序和去重
List<AList> aList_new = removeDuplicateGT(aList_old);
private static ArrayList<A> removeDuplicateGT(List<A> aList) {
Set<A> set = new TreeSet<A>(new Comparator<A>() {
@Override
public int compare(A a1, A a2) {
//字符串,则按照asicc码升序排列
return a1.getFromLine().compareTo(a2.getFromLine());
}
});
set.addAll(aList);
return new ArrayList<A>(set);
}
// lambda表达式排序(JDK1.8及以上),按数值排序
AList.sort((A o1, A o2) -> Integer.parseInt(o2.getIdString()) - Integer.parseInt(o1.getIdString()));
// lambda表达式(JDK1.8及以上),按中文拼音排序
Collections.sort(AList,(A o1,A o2)-> Collator.getInstance(Locale.CHINESE).compare(o1.getName(),o2.getName()));
// 英文从A至Z,数字从0至9
list.sort((String s1, String s2) -> Collator.getInstance().compare(s1,s2));
List<ItemInfo> itemInfoList = new ArrayList();
// 根据ItemInfo的fallValue降序排列
itemInfoList.sort(Comparator.comparingDouble(itemInfo -> -itemInfo.getFallValue()));
借助Comparable或Comparator接口也可对对象排序,可参考:https://www.cnblogs.com/skywang12345/p/3324788.html