課程
/后端開發
/Java
/JAVA遇見HTML——JSP篇
本課中的list中會存儲重復的內容,如何較好的去除重復的內容?
2016-10-18
源自:JAVA遇見HTML——JSP篇 8-8
正在回答
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); ? ? ? ?} ? ?}
QQQJ君4072683 提問者
舉報
Java Web入門級教程JSP,帶你輕松的學習JSP基礎知識
3 回答結果中屬性值出現如下內容
1 回答可以講解下 重定向 如何傳參嗎?
5 回答如果重復點擊一個商品,讓Cookie中是 1,1,1,1,1,1 這樣子
3 回答課程內容變動
3 回答id相同時cookie重復問題?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-19
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);
? ? ? ?}
? ?}