去除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
Java中List集合的遍歷(三種遍歷方式效率的比較)
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標籤遍歷取map中list集合中的物件屬性值
今天寫批量列印功能時,後臺傳到前端的資料是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