1.List中去除null
list.removeAll(Collections.singleton(null));
此類 Collections
映入的包
import org.apache.commons.collections.CollectionUtils;
2.字符串查用判空
StringUtils.isBlank()
StringUtils.isEmpty()
相對比較isBlank比isEmpty強大一點
在做判空的時候isBlank能判斷字符串中的String aa = " ";
而isEmpty是不行的
3.StringUtils引入的包
import org.apache.commons.lang3.StringUtils;
4.集合判空
CollectionUtils.isNotEmpty();
引入的包
import org.apache.commons.collections.CollectionUtils;
5.List集合去重
List<String> list = new ArrayList<>();
list.add("你好");
list.add("baby");
list.add("你好");
Set<String> set = new HashSet<String>();
set.addAll(list);
list.clear();
list.addAll(set);
6.實體對象不實現hashcode和equals方法也能實現去重邏輯
User
實體對象
public class User {
private String name;
private String age;
private String sex;
private Integer id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public User(String name, String age, String sex, Integer id) {
this.name = name;
this.age = age;
this.sex = sex;
this.id = id;
}
public User() {
}
}
List<User> list = new ArrayList<>();
list.add(new User("小白","12","女",12));
list.add(new User("李白","12","男",12));
list.add(new User("baby","12","女",12));
list.add(new User("小白","12","女",12));
list.add(new User("小白","12","女",12));
Set<User> set = new TreeSet<>(new Comparator<User>() {
@Override
public int compare(User user, User t1) {
// 數據對比
return (user.getName().compareTo(t1.getName()));
}
});
set.addAll(list);
打印結果
User{name='baby', age='12', sex='女', id=12}
User{name='小白', age='12', sex='女', id=12}
User{name='李白', age='12', sex='男', id=12}
Set源碼
public interface Set<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object var1);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] var1);
boolean add(E var1);
boolean remove(Object var1);
boolean containsAll(Collection<?> var1);
boolean addAll(Collection<? extends E> var1);
boolean retainAll(Collection<?> var1);
boolean removeAll(Collection<?> var1);
void clear();
boolean equals(Object var1);
int hashCode();
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, 1);
}
}
這裏用到Comparator
這個類,Comparator
比較器重寫了compareTo
的方法。compareTo
這個方法只是一個對比,做不到去重的目的。因爲Set的源碼中實現了hashcode
和equals
方法,在加上Comparator
就是可以實現去重了!