java中,如何去掉LIST里的重復元素

最好的辦法是用Set,因為Set裡面存放的數據是不重復的。
如果你不想用Set,那還可以向下面這樣處版理。

List list_tmp = new ArrayList(); //建立一權個用於臨時存放不重復list元素的List集合。
for(Object obj:list){
//可以根據需要,在這里加上強制轉型。
//如list裡面存放的是一個User對象,那麼加上User u = (User) obj;
if(!list_tmp.contains(obj)){ //注意contains方法是通過equals方法進行比較的所以你要根據你自己的需要看是否需要重寫list對象裡面的equals方法。
list_tmp.add(obj);//如果上面加了強制轉型,這里需要寫list_tmp.add(u);
}
}

㈡ Java中如何去除List中的重復的值

屬性是????

先給你一個看看是不是你需要的好了,


//利用Set的特性,將所有項目放入Set
//中即可移除重復的項目
Set<String>stringSet=newHashSet<String>();
for(Stringelement:plicateArray){
stringSet.add(element);
}
//Set.size()為不重復項目的個數
StringnonDuplicateArray[]=newString[stringSet.size()];
//將Set中的項目取出放到nonDuplicateArray中
Object[]tempArray=stringSet.toArray();
for(inti=0;i<tempArray.length;i++){
nonDuplicateArray[i]=(String)tempArray[i];
}

㈢ java 項目 , List<實體>,需要獲取list中的重復數據

java項目中獲取list重復數據可以使用list的replicateIndex方法,實例如下:
public static void main(String[] args) throws Exception {
<String> list = new ArrayList<String>();
list.add("123");
list.add("456");
list.add("555");
list.add("123");
list.add("444");
list.add("123");

// 輸出原 List 的內容
for (int i = 0; i < list.size(); i++) {
System.out.printf("%2d --> %s%n", i, list.get(i));
}
System.out.println("=============");

// 輸出查找重復元素的內容
int[] indexArray = replicateIndex(list, "123");
for (int index : indexArray) {
System.out.printf("%2d --> %s%n", index, list.get(index));
}
}

public static <T> int[] replicateIndex(List<T> list, T str) throws Exception{
List<T> tmp = new ArrayList<T>(list);
int[] index = new int[Collections.frequency(list, str)];
int start = tmp.indexOf(str);
int end = tmp.lastIndexOf(str);
int i = 0;
if(start < 0) {
throw new Exception("數組中不存在 " + str + " 元素!");
}
index[i] = start;
while (start != end) {
index[++i] = end;
tmp = tmp.subList(0, end);
end = tmp.lastIndexOf(str);
}
Arrays.sort(index);
return index;
}

㈣ Java中如何判斷List中一部分數據是否重復

方法一:將元素用Set.add()方法逐一插入到一個Set中,觀察add()方法的返回值,如果返回false說明當前元素重復。元素所屬的類需要重寫equals()和hashCode()方法。
方法二:將所有元素復制到一個新List中並用List.sort()方法排序,然後遍歷該List檢查相鄰每兩個元素是否重復。元素所屬的類必須實現Comparable介面。

㈤ java里有沒有專門判斷List里有重復的數據

你好,既然用list了,那麼就不排除會重復,而且list可以是對象,也並不好確認唯一性,可以用map來進行存儲確認唯一性。如果一定要把list判斷出來的話,可以參考下面的小例子

publicstaticvoidmain(String[]args)
{
List<String>list=newArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("bb");
list.add("ee");
list.add("dd");
list.add("ff");

Stringtemp="";
for(inti=0;i<list.size()-1;i++)
{
temp=list.get(i);
for(intj=i+1;j<list.size();j++)
{
if(temp.equals(list.get(j)))
{
System.out.println("第"+(i+1)+"個跟第"+(j+1)+"個重復,值是:"+temp);
}
}
}
}

㈥ java 判斷list里是否有重復

publicstaticvoidmain(String[]args){
Set<String>s=newHashSet<String>();
List<String>l=newArrayList<String>();
l.add("1");
l.add("2");
l.add("2");
l.add("3");
for(Stringstr:l){
booleanb=s.add(str);
if(!b){
System.out.println(str);
}
}
}

用set判斷,並且可以找出哪個重復,set內的元素是不可重復的。

㈦ java中list和set介面 set不可以重復,list可以重復

set 無序不可重復
list 有序可重復

對應set 當存放的元素為 對象時 你讓該對象相應的類 覆蓋內equals和hashcode兩個容方法,判斷兩個對象是否相等時會調用equals方法去比較。根據你寫的equals方法返回true or flase進行判斷 ,如果為true則相同 則會覆蓋上次的同等對象,如果為false則添加成功。

㈧ java中一個list,如果比較出裡面哪幾個重復

說了一大來堆沒見你自解決問題,加一個循環判斷一下就是了嘛
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("3");
list.add("4");
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
if (list.get(i).equals(list.get(j))&&j!=i&&i<j) {
System.out.println(i+1+"和"+(j+1)+"重復");
}
}
}

㈨ 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;

}

}

㈩ java中怎樣去除list中重復的數據,並且顯示重復數據的條數

刪除ArrayList中重復數據保條數。

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)。