list過濾重復數據
A. js中如何去除list中的重復數據
最笨的方法:
varlist=[1,2,3,6,7,8,9,1,2,3,6];//有重復的數組
varobj={};//用於標記字元串
vararr=[];//去掉重復後的數組
for(vari=0,len=list.length;i<len;i++){
vars=list[i];
if(obj[s])continue;//如果字元串已經存在就跳過版
else{
obj[s]=s;//加入標記對象權中
arr.push(s);//結果放入新數組中
}
}
當jquery中有封裝好的去重復方法,還有其他第三方js插件也存在去重復的方法。
B. C#中 list<object> 去除重復的數據 求最簡單的方法!!
//導入linq命名空間, 然後distinct一下就可以了. 關鍵代碼如下:
using System.Linq;
//比如,list實例為list
var obj = list.Distinct();
//或者麻煩點要根據list的欄位xxx過濾回就是
var obj_1=from p in list select p.xxx distinct();
擴展答資料
list()函數與array()類似,只是它可以在一次操作中從一個數組內提取多個值,同時為多個變數賦值。其形式如下:
voidlist(mixed…)從資料庫或文件中提取信息時,這種構造尤其有用。例如,假如你希望格式化並輸出從一個文本,文件中讀取信息。文件的每一行都包含用戶信息,如姓名、職業和喜愛的顏色,每一項用豎線分隔。典型的一行如下所示:
Nino Sanzi|profesional golfer|green
可以通過一個簡單的循環使用list()來讀取每一行,將各部分數據賦給變數,按照需要格式化並輸出數據。
C. 如何去掉一個list中重復的數據
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 plicate " + 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);
}
}
D. 如何在List集合中排除重復的數據
它這個要求也就是讓最後輸出的結果為[a, c, d, f],把出現一次以後的元素只剩下內一個: 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);}}} 因為這道題我們的思路是,先循環遍歷集合中的每一個元素,再依次用集合中的元素去比對後面的元素,如果有相同的,就在集合中把當前的元素移除掉,那麼,重點來了, 你移除了當前的集合,那麼
E. 如何過濾list中的重復數據
public class TesFilterList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("123");
list.add("nihao");
list.add("nihao");
list.add("nihao");
list.add("nihao");
list.add("456");
list.add("789");
int len = list.size();
for(int i=0; i<len-1; i++){
String temp = list.get(i);
for(int j=i+1; j<len; j++){
if(temp.equals(list.get(j))){
list.remove(j);
j-- ;
len-- ;
}
}
}
for(int m=0; m<len; m++){
System.out.print(list.get(m) + " ");
}
}
}
F. list<string>如何去除重復數據
屬性是???? 先給你一個看看是不是你需要的好了, // 利用 Set 的特性,將所有項目放回入 Set //中即可移除重復的答項目 Set<String> stringSet = new HashSet<String>(); for (String element : plicateArray) { stringSet.add(element); } // Set.size() 為不重復項目的個數 String nonDuplicateArray[] = new String[stringSet.size()]; // 將 Set 中的項目取出放到 nonDuplicateArray 中 Object[] tempArray = stringSet.toArray(); for (int i = 0; i < tempArray.length; i++) { nonDuplicateArray[i] = (String) tempArray[i]; }
G. 如何去除List集合中重復的元素
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);}
(7)list過濾重復數據擴展閱讀:
List集合代表一個元素有序,可重復的集合,集合中每個元素都有對應的順序索引。List介面中增加了一些根據索引操作元素的方法:
void add(int index,E element ) 在列表的指定位置插入該元素。
boolean addAll(int index,Collection c) 將集合c包含的所有元素都插入到List集合的index處。
Object get(int index) 返回集合index索引出的元素。
List額外提供的一個listIterator()方法,提供了專門操作List的方法。
ListIterator介面在Iterator的基礎上增加了如下方法:
boolean hasPrevious(): 返回該迭代器關聯的集合是否還有上一個元素。
Object previous(): 返回該迭代器的上一個元素。
void add((E e): 在指定位置插入一個元素。
H. java取List中重復的數據!
packageacc.testJSON;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importjava.util.Map.Entry;
importjava.util.Set;
publicclassAA{
publicstaticvoidmain(String[]args){
List<Map<Integer,String>>list=newArrayList<Map<Integer,String>>();
Map<Integer,String>map2=newHashMap<Integer,String>();
map2.put(1,"美元");
map2.put(2,"日元");
map2.put(3,"歐元");
map2.put(4,"日元");
map2.put(5,"人民幣");
map2.put(10,"歐元");
list.add(map2);
System.out.println("--------之前---------------");
for(inti=0;i<list.size();i++){
Map<Integer,String>tempMap=list.get(i);
for(Entry<Integer,String>e:tempMap.entrySet()){
System.out.println("K:"+e.getKey()+"v:"+e.getValue());
}}
System.out.println("---------------------開始處理--------------------------");
List<Map<String,Integer>>newList=newArrayList<Map<String,Integer>>();
AAaa=newAA();
newList=aa.executMoedth(list);//如果有相同的
System.out.println("--------之後---------------");
for(inti=0;i<newList.size();i++){
Map<String,Integer>tempMap=newList.get(i);
for(Entry<String,Integer>e:tempMap.entrySet()){
System.out.println(e.getValue()+":"+e.getKey());
}}
}
publicList<Map<String,Integer>>executMoedth(List<Map<Integer,String>>list){
System.out.println("---------------------處理中--------------------------");
List<Map<String,Integer>>newList=newArrayList<Map<String,Integer>>();
Map<String,Integer>newMap=newHashMap<String,Integer>();
for(inti=0;i<list.size();i++){
Map<Integer,String>tempMap=list.get(i);//第i個list中的Map
for(Entry<Integer,String>e1:tempMap.entrySet()){//map遍歷
inttempi=0;
for(Entry<Integer,String>e2:tempMap.entrySet()){//map遍歷
if(e1.getValue().equals(e2.getValue())){//如果相等
if(!e1.equals(e2))
/*tempi++;
if(tempi>=1)*/
{
//newMap.remove(e1.getKey());//移除第一個添加的
intnewValus=e1.getKey()+e2.getKey();//得到總錢數
StringnewKey=e1.getValue();
newMap.remove(e1.getValue());//幹掉
newMap.remove(e2.getValue());//幹掉
System.out.println("找到一個已處理:"+newKey+newValus);
newMap.put(newKey,newValus);//新集合
}
//如果新集合里沒有的
if(!newMap.containsKey(e1.getValue()))
newMap.put(e1.getValue(),e1.getKey());//新集合
}
}
}
newList.add(newMap);//新集合
}
returnnewList;
}
}
I. 關於List集合中用Set排除重復數據。
直接這樣就行了,上面的圖片是代碼及輸出結果,其中s2和s4是重復的,但是內輸出的結果中沒有重容復值
publicstaticvoidmain(String[]args){
SetmyList=newHashSet();
Strings1="aa";
Strings2="bb";
Strings3="cc";
Strings4="bb";
myList.add(s1);
myList.add(s2);
myList.add(s3);
myList.add(s4);
ListmyNeedList=newArrayList(myList);
System.out.println(myNeedList);
}
J. java 怎樣把list中相同的數據找出來
//初始化list
<Integer>list=newArrayList<Integer>();
list.add(1);
list.add(21);
list.add(1);
list.add(3);
list.add(3);
list.add(3);
//set中存放的是不可重復的元素
HashSet<Integer>set=newHashSet<Integer>();
//這里存放的是所有重復的元素,如果你只想知道是哪幾個數字重復了,不需要知道具體重復了幾次,可以用HashSet
List<Integer>repeatElements=newArrayList<Integer>();
for(inti=0;i<list.size();i++){
intvalue=list.get(i);
if(set.contains(value)){
//重復元素
repeatElements.add(value);
}
else{
set.add(value);
}
}
//輸出重復的元素
for(inti=0;i<repeatElements.size();i++){
System.out.println(repeatElements.get(i));
}