可以看到remove 有兩個方法,一個返回值是Boolean。一個返回值是刪除的對象類型,這個參數是該對象在列表中的位置(用的少)。
區別:remove是刪除List中的一條數據,參數是List<> 的一個泛型對象,刪除也只刪除一條。
removeAll 是根據參數集合刪除List中的多條數據,凡是和參數中一樣的都會被刪除。比如列表是List<Integer> 的 ,原列表是[ 1,1,2,33,55,1,1] 參數是[1]
那么removeAll方法刪除后是[2,33,55]。
今天導入文件遇到一個問題。有用戶導入了 多條一模一樣的數據(不知道怎么想的),這里去重后,要把重復的數據返回給用戶,告訴他們哪些重復。
我原來的需求做的是 先把不重復的數據拿出來,然后在文件解析出的list中把unique的對象刪除。 原來用的removeAll 。這樣就會把重復的全部刪除掉。就比如說一共導入10條數據,完全重復的8條,刪除后返回給前端就只有3條。
最后是用for循環+remove做的,這樣可以返回十條。remove刪除的話list中有完全重復的也只刪除一條