方案一:借助Set的特性进行去重
public static List< String> list distinct ( List< String> list) {
final boolean sta = null != list && list. size ( ) > 0 ;
List doubleList= new ArrayList ( ) ;
if ( sta) {
Set set = new HashSet ( ) ;
set. addAll ( list) ;
doubleList. addAll ( set) ;
}
return doubleList;
}
方案二 : 利用set集合特性保持顺序一致去重
public static void delRepeat ( List< String> list) {
List< String> listNew = new ArrayList < String> ( new TreeSet < String> ( list) ) ;
List< String> listNew2 = new ArrayList < String> ( new LinkedHashSet < String> ( list) ) ;
}
方案三 : 使用list自身方法remove()–>不推荐
public static List< Map< String, Object> > distinct ( List< Map< String, Object> > list) {
if ( null != list && list. size ( ) > 0 ) {
for ( int i = 0 ; i < list. size ( ) - 1 ; i ++ ) {
for ( int j = list. size ( ) - 1 ; j > i; j -- ) {
if ( list. get ( j) . equals ( list. get ( i) ) ) {
list. remove ( j) ;
}
}
}
}
return list;
}
方案四 : 遍历List集合,将元素添加到另一个List集合中
public static List< String> delRepeat ( List< String> list) {
List< String> listNew = new ArrayList < String> ( ) ;
for ( String str : list) {
if ( ! listNew. contains ( str) ) {
listNew. add ( str) ;
}
}
return listNew ;
}
方案5 : 使用Java8特性去重
public static List< String> delRepeat ( List< String> list) {
List< String> myList = list. stream ( ) . distinct ( ) . collect ( Collectors. toList ( ) ) ;
return myList ;
}