1. java判斷兩個list是否有重復元素
Collections.disjoint(Collection<?> c1, Collection<?> c2)
如果兩個指定 collection 中沒有相同的元素,則返回 true。
2. java中一個list,如果比較出裡面哪幾個重復
那就只能一個一個遍歷了:
for(int i = 0 ;i<list.size();i++){
for(int j=i;j<list.size();j++){
if(list.get(i).equals(list.get(j))){
System.out.println("第"+list.get(i)+"和第"+list.get(j)+"個相等");
}
}
}
3. JAVA裡面,怎樣找出兩個list中相同的元素
package com.test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
*
* 找出兩個list中不同的元素
* @author leiwei 2011-12-14
*
*/
public class NoEqualsElement {
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1.add("1");
list1.add("3");
list1.add("8");
list1.add("9");
list2.add("2");
list2.add("3");
list2.add("7");
for(String s2:list1) {
boolean flag = false;
for(String s1:list2) {
if(s2.equals(s1)) {
flag = true;
break;
}
}
if(!flag){
System.out.println(s2);
}
}
}
}
[java] view plain
package com.test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.model.Student;
/**
* 重寫對象Student的equals方法
* 只要age相等 對象就相等
*
* 刪除兩個集合中 相同的對象只保留一個
* @author leiwei 2011-12-19
*
*/
public class ListOBJ {
public static void main(String[] args) {
Set<Student> setStudent = new HashSet<Student>();
List<Student> list1 = new ArrayList<Student>();
List<Student> list2 = new ArrayList<Student>();
Student s1 = new Student();
s1.setAge("10");
list1.add(s1);
Student s2 = new Student();
s2.setAge("20");
list1.add(s2);
Student s3 = new Student();
s3.setAge("20");
list2.add(s3);
Student s4 = new Student();
s4.setAge("30");
list2.add(s4);
/**
* 我們知道set集合,中的元素不會重復
*
* 將連個對象集合放進去,自然就會排出重復的
*
* 對象(前提Student 對象重寫了equals方法)
*/
setStudent.addAll(list1);
setStudent.addAll(list2);
//輸出 測試看是否 排出成功
System.out.println(setStudent.size());
Iterator<Student> iterator = setStudent.iterator();
while (iterator.hasNext()) {
Student s = iterator.next();
System.out.println(s.getAge());
}
}
}
[java] view plain
package com.model;
public class Student {
private String age;
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
//重寫equals方法只要age相等,我們就認為對象兩個相等
@Override
public boolean equals(Object obj) {
if(obj instanceof Student){
Student st=(Student) obj;
return (age.equals(st.age));
}else{
return super.equals(obj);
}
}
@Override
public int hashCode() {
return age.hashCode();
}
}
4. java怎麼比較兩個list是否相同
首先這里需要確定一下集合相等的定義,我們應該是認為兩個集合的元素完全一致則相等。那麼判斷可以這樣做:
一判斷兩個list集合的元素個數是否相等。如果不相等則兩個list集合也不相等,判斷結束,如果相等則進入第二步判斷
二判斷list1的元素是否全部在list2中。遍歷list1,取出list1中的元素,依次去list2中比較是否list2也存在這個元素。如果有任何一個list1中的元素在list2中不存在,則兩個list集合不相等,如果全部存在則兩個list集合相等。
這里需要說明一點,因為第一步中已經判斷list1和list2的元素個數是相等的,所以第二步中如果list1的元素全部在list2中,則可以證明list1與list2相等。不需要再遍歷list2中的元素,去list1中判斷是否存在。
5. java里有沒有專門判斷List里有重復的數據
List是有序的可重復集合, 如果要判斷list中是否有一個元素 , 可以用 list.contains(obj)
如果只是為了判斷list中是否有重復 , 方法有很多種, 比如可以將list轉換為set
Set set = new HashSet<>(list);
set是無需不可重復的集合 , list轉成set之後 , 如果set的size比 list的size小 , 說明有重復元素
也可以遍歷list , 放入Map , 用list的泛型作為 map 的 key 類型 , 而出現的次數作為 map的value , 這樣就能很容易看出來 list中的元素有沒有重復 , 哪個有重復 , 重復了幾次
6. Java判斷list中是否有重復元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) {
Set<String> s = new HashSet<String>();
List<String> l = new ArrayList<String>();
l.add("1");
l.add("2");
l.add("2");
l.add("3");
for (String str : l) {
boolean b = s.add(str);
if(!b){
System.out.println(str);
}
}
}
用set判斷,並且可以找出哪個重復,set內的元素是不可重復的。