好久不见,回望自己最近的几个月,确实写的东西少了很多,导致归档是七月我推荐自己app的一篇博客。
既然重回这路上,很希望自己能坚持下去。坚持写下去,可是一个聪明的人从来不把话说太满。或许有一天我转行或者其他,就真的被动的坚持不了。
我叫它 “无奈”
还在回归副题。。。
先把我今天发现的问题记录一下
public static void main(String[] args) {
List<User> users=new ArrayList<>();
List<String> stringList=new ArrayList<>();
stringList.add("张三");
stringList.add("张三");
users.add(new User("张三",18));
users.add(new User("张三",18));
System.out.println(stringList.size());
users=new ArrayList<User>(new HashSet<User>(users));
stringList=new ArrayList<String>(new HashSet<String>(stringList));
System.out.println(stringList.size());
}
关于基础数据类型的去重可以用我上面这种,但是关于对象却不行,还有什么年代了,别用for循环了,我这么菜都知道这种去重或者二分查找了。不在是大一初学者练习自己的逻辑能力去不断的暴力破解,往往最直接的暴力破解也是系统最需要时间的去处理的。
比较合理的方法的有
List<User> userListNoDupAndSort = removeDuplicateUser(userList);
private static ArrayList<User> removeDuplicateUser (List < User > users) {
//方法一按照List中的某个String类型的属性进行去重
Set<User> set = new TreeSet<User>(new Comparator<User>() {
@Override
public int compare(User o1, User o2) {
//字符串,则按照asicc码升序排列
return o1.getUserId().compareTo(o2.getUserId());
}
});
set.addAll(users);
return new ArrayList<User>(set);
//方法二jdk1.8使用
return users.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> newTreeSet < > (Comparator.comparing(User::getUserId))), ArrayList::new))
}
倘若你此时有个好心情,还记得自己以前想要的。而且你现在还朝着它前进。
我叫它 “目标”
我也有
1.微信小程序初级开发(只添加了书签)
2.小游戏初级开发(做过一个)
3.做一个属于自己的app(完成)
4.不找家人要钱(完成)
5.锻炼身体(跑步20天)
我发现我当时真的有点小聪明,还行,至少2018年度总结这些都没写死
不然说句实话,我真慌了
可是时间都快过完了,慌能有什么用
所以,这些我会去完成,也许不能全部完成,但是我希望,我能像我现在写这篇博客一样轻松,自然,无感知的去完成和实现它们;
我叫它 “无中生有”
你可以嘲讽我的无或生有,没关系,知识面广的人,从不会轻易评价他人。