亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如何去除重復內容?

本課中的list中會存儲重復的內容,如何較好的去除重復的內容?

正在回答

1 回答

1、通過循環進行刪除

public ? static ? void ?removeDuplicate(List list) ? {
? 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);
? ? ?}
? ?}
?}
?System.out.println(list);
}

2、通過HashSet刪除
public ? static ? void ?removeDuplicate(List list) ? {
? ?HashSet h ?= ? new ?HashSet(list);
? ?list.clear();
? ?list.addAll(h);
? ?System.out.println(list);
}

3、刪除重復元素,并保持順序。(我沒試)

public ? static ? void ?removeDuplicateWithOrder(List list) ? {
? ? ?Set set ?= ? new ?HashSet();
? ? ?List newList ?= ? new ?ArrayList();
? for ?(Iterator iter ?= ?list.iterator(); iter.hasNext();) ? {
? ? ? ? Object element ?= ?iter.next();
? ? ? ? if ?(set.add(element))
? ? ? ? ? ?newList.add(element);
? ? }
? ? list.clear();
? ? list.addAll(newList);
? ? System.out.println( " remove duplicate " ? + ?list);
}

4、定義一個方法,調用即可。

? publi List<String> getNewList(List<String> li){
? ? ? ?List<String> list = new ArrayList<String>();
? ? ? ?for(int i=0; i<li.size(); i++){
? ? ? ? ? ?String str = li.get(i); ?//獲取傳入集合對象的每一個元素
? ? ? ? ? ?if(!list.contains(str)){ ? //查看新集合中是否有指定的元素,如果沒有則加入
? ? ? ? ? ? ? ?list.add(str);
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?return list; ?//返回集合
? ?}

? ?public class Test{
? ? ? ?public static void main(String[] args){
? ? ? ? ? ArrayList<String> arr = new ArrayList<String>();
? ? ? ? ? arr.add("aaa");
? ? ? ? ? arr.add("bbb");
? ? ? ? ? arr.add("aaa");
? ? ? ? ? arr.add("ccc");
? ? ? ? ? arr = getNewList(arr); ?//方法去重
? ? ? ? ? System.out.println(arr);
? ? ? ?}
? ?}

1 回復 有任何疑惑可以回復我~
#1

QQQJ君4072683 提問者

感謝大神
2016-10-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

如何去除重復內容?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號