1. 程式人生 > >去除List集合中的重複值(四種好用的方法)

去除List集合中的重複值(四種好用的方法)

最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。
但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序呢?
試了一下,也是可以的,幾種方法在不同情況下都有各自的優勢。現在將程式碼寫出來,比較一下。

    //set集合去重,不打亂順序
    public static void main(String[] args){
         List<String> list  =   new  ArrayList<String>(); 
         list
.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); Set set = new HashSet(); List newList = new ArrayList(); for (String cd:list) { if(set.add(cd)){ newList.add(cd); } } System.out.println( "去重後的集合: "
+ newList); }
     //遍歷後判斷賦給另一個list集合
     public static void main(String[] args){
         List<String> list  =   new  ArrayList<String>(); 
         list.add("aaa");
         list.add("bbb");
         list.add("aaa");
         list.add("aba");
         list.add("aaa");

         List
<String> newList = new ArrayList<String>(); for (String cd:list) { if(!newList.contains(cd)){ newList.add(cd); } } System.out.println( "去重後的集合: " + newList); }
    //set去重
    public static void main(String[] args){
         List<String> list  =   new  ArrayList<String>(); 
         list.add("aaa");
         list.add("bbb");
         list.add("aaa");
         list.add("aba");
         list.add("aaa");

        Set set = new  HashSet(); 
         List newList = new  ArrayList(); 
         set.addAll(list);
         newList.addAll(set);

         System.out.println( "去重後的集合: " + newList); 
     }
        //set去重(縮減為一行)
        public static void main(String[] args){
             List<String> list  =   new  ArrayList<String>(); 
             list.add("aaa");
             list.add("bbb");
             list.add("aaa");
             list.add("aba");
             list.add("aaa");

             List newList = new ArrayList(new HashSet(list)); 

             System.out.println( "去重後的集合: " + newList); 
         }

hashset不進行排序,還有一種方法是用treeset,去重並且按照自然順序排列,將hashset改為treeset就可以了。(原本的順序是改變的,只是按照字母表順序排列而已)

//去重並且按照自然順序排列
List newList = new ArrayList(new TreeSet(list)); 

相關推薦

去除List集合重複方法基本資料型別可用

最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。  但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序

Java:去除List集合重複方法

最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。  但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序

去除List集合重複方法

最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。 但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用se

去除list集合重複項的幾方法

因為用到list,要去除重複資料,嘗試了幾種方法。記錄於此。。。 測試資料:        List<string> li1 = new List<string> { "8", "8", "9", "9" ,"0","9"}; List<string

如何去除List集合重複的元素

        // <summary>         /// 去除List集合中的重複元素         /// </summary>         /// <param name="list">要去除重複元素的集合</pa

Vector.LinkedList的特有功能 ArrayList去除集合重複的兩方法

1.Vector的特有功能 新增功能 public void addElement(Object obj) 獲取功能 public Object elementAt(int index)

List集合刪除屬性一個或者多個屬性相同的物件返回List且根據物件屬性進行排序輸出

    在資料庫中某些資料是重複的,通過mybatis對映成不同的物件。導致不同的物件包含相同的屬性。這也是資料重複的一種。下面是我在處理一個屬性或者多個屬性相同時採用的方法。當然你可以採用其他的方法。比較蠢的方法是兩個for迴圈。但是對於資料的刪除是很容易出現異常的。因此我

JAVA基礎集合-去除List集合重複

package com.fdd; import java.util.*; /** * @uthor lihongliang on 2017/9/22 17:36 * @Emile [email protected] * @Descri

去除List集合重複物件,去除物件!

if(A.contains(B)) { .......這樣不能比較出重複的物件 } //使用List時,想去除完全屬性完全相等的物件,不能用以上方法。查詢資料,以下方法可行:public class DataRowComparer : IEqualityCom

JAVA找出List集合重複次數最多的資料和次數

import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Ent

JavaList集合的遍歷遍歷方式效率的比較

public static void main(String args[]){ compare(); } public static void compare() { List<String> list = new ArrayList

找出兩個list集合重複的部分

找出兩個list中重複的部分,程式碼簡單,如下: public static void main(String[] args) {          List<String> list  =   new  ArrayList<String>();

javascript遍歷EL表示式List集合

今天遇到個問題就是我想在js中獲取後臺傳來的list中的值。本來頁面展現是用的EL表示式,一切都沒有什麼問題,但是我要動態獲取集合中的url然後在js中呼叫qrcode生成二維碼,當我嘗試按大部分的思

SQL語句刪除重複記錄的方法

DECLARE @a int SET @a = 1 DECLARE @t TABLE( id int IDENTITY, a int, b int) DECLARE @dt datetime, @loop int, @id int SET @lo

大家一起學python-day4-簡單的字串格式化"{}很"

#format的第一個用法 #1.1普通的功能 msg = '大家好我叫{},今年{}歲' print(msg.format('阿衰',20))#大家好我叫阿衰,今年20歲 #1.2按照括號中的數字大小進行賦值,從0開始 msg = '大家好我叫{1},今年{0}歲,明年{0}歲' prin

Python去除列表list重複項的2方式

方式一、轉換為集合再轉換為列表 list1=[11,22,11,22,33,44,55,55,66] print(list1) print(list(set(list1))) #輸出結果 #[11, 22, 11, 22, 33, 44, 55, 55, 66] #[33, 66, 11

後端list集合的數據傳遞到前臺HTML顯示表格形式

UNC 姓名 char 響應 防止 數據 前端 格式 ble 關鍵字:web項目中前後臺數據傳遞問題 在學習web項目的過程中,我們肯定會遇到前後臺數據交換問題。這個問題我也思考了很久,今天借此總結一下。由於博主水平有限,如有不當之處,還請大家多多指正,,廢話

c標籤遍歷取maplist集合的物件屬性

今天寫批量列印功能時,後臺傳到前端的資料是map集合,以前沒用過,取值時出現了問題,在這裡記錄一下,備忘和複習時看: 1.前端主要部分如下: <body> <c:forEach var="fee" items="${map[\"EtImportFees\

list集合按照某個欄位排序從大到小),然後將list的物件倒序

需求: 查詢資料庫的到多條據,將每一行資料相加求和,得到sum,在jsp中跟據sum總和排序。 首先,我是用Page<Analysis> page  去接受返回值,在controller層進行資料處理。List<Analysis> list  =

如何在map集合取出list集合的每一個value

那我就直接上程式碼了哈  package com.damei; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; publ