導航:首頁 > 編程語言 > java判斷list重復

java判斷list重復

發布時間:2022-07-26 11:36:24

A. 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內的元素是不可重復的。

B. 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();

}

}

C. 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中的元素有沒有重復 , 哪個有重復 , 重復了幾次

D. java判斷兩個list是否有重復元素

Collections.disjoint(Collection<?> c1, Collection<?> c2)
如果兩個指定 collection 中沒有相同的元素,則返回 true。

E. java怎麼比較兩個list是否相同

首先這里需要確定一下集合相等的定義,我們應該是認為兩個集合的元素完全一致則相等。那麼判斷可以這樣做:
一判斷兩個list集合的元素個數是否相等。如果不相等則兩個list集合也不相等,判斷結束,如果相等則進入第二步判斷
二判斷list1的元素是否全部在list2中。遍歷list1,取出list1中的元素,依次去list2中比較是否list2也存在這個元素。如果有任何一個list1中的元素在list2中不存在,則兩個list集合不相等,如果全部存在則兩個list集合相等。
這里需要說明一點,因為第一步中已經判斷list1和list2的元素個數是相等的,所以第二步中如果list1的元素全部在list2中,則可以證明list1與list2相等。不需要再遍歷list2中的元素,去list1中判斷是否存在。

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

java項目中獲取list重復數據可以使用list的replicateIndex方法,實例如下:
public static void main(String[] args) throws Exception {
List<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;
}

G. 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)+"個相等");
}
}
}

H. 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內的元素是不可重復的。

I. java裡面判斷List裡面是否有重復的數據

你好,既然用list了,那麼就不排除會重復,而且list可以是對象,也並不好確認唯一性,可以用map來進行存儲確認唯一性。如果一定要把list判斷出來的話,可以參考下面的小例子
public static void main(String[] args) { List<String> list = new ArrayList<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"); String temp = ""; for (int i = 0; i < list.size() - 1; i++) { temp = list.get(i); for (int j = i + 1; j < list.size(); j++) { if (temp.equals(list.get(j))) { System.out.println("第" + (i + 1) + "個跟第" + (j + 1) + "個重復,值是:" + temp); } } } }

J. java 怎麼比較兩個list是否相同

首先這里需要確定一下集合相等的定義,我們應該是認為兩個集合的元素完全一致則相等。那麼判斷可以這樣做:
第一步:判斷兩個list集合的元素個數是否相等。如果不相等則兩個list集合也不相等,判斷結束,如果相等則進入第二步判斷
第二步:判斷list1的元素是否全部在list2中。遍歷list1,取出list1中的元素,依次去list2中比較是否list2也存在這個元素。如果有任何一個list1中的元素在list2中不存在,則兩個list集合不相等,如果全部存在則兩個list集合相等。
這里需要說明一點,因為第一步中已經判斷list1和list2的元素個數是相等的,所以第二步中如果list1的元素全部在list2中,則可以證明list1與list2相等。不需要再遍歷list2中的元素,去list1中判斷是否存在。
以下是上訴過程的Java代碼例子:
public boolean equalList(List list1, List list2) {
if (list1.size() != list2.size())
return false;
for (Object object : list1) {
if (!list2.contains(object))
return false;
}
return true;
}

以上過程適用於所有編程語言。另外不同編程語言還提供了一些其他方法,所以對於不同編程語言還可以有其他寫法。
比如Java中為list集合提供了containsAll方法。所以對於Java語言還可以這么寫:
public boolean equalList(List list1, List list2) {
if (list1.size() != list2.size())
return false;
if (list2.containsAll(list1))
return true;
return false;
}

還可以簡寫成這樣
public boolean equalList(List list1, List list2) {
return (list1.size() == list2.size()) && list1.containsAll(list2);
}

閱讀全文

與java判斷list重復相關的資料

熱點內容
郭天祥單片機實驗板 瀏覽:597
伺服器有什麼危害 瀏覽:256
飢荒怎麼開新的獨立伺服器 瀏覽:753
文件夾變成了 瀏覽:560
linuxpython綠色版 瀏覽:431
怎麼下載小愛同學音箱app 瀏覽:554
python佔位符作用 瀏覽:76
javajdbcpdf 瀏覽:543
php網頁模板下載 瀏覽:192
python試講課pygame 瀏覽:409
安居客的文件夾名稱 瀏覽:677
家裡伺服器如何玩 瀏覽:451
網站源碼使用視頻 瀏覽:748
stc89c52單片機最小系統 瀏覽:452
郵件安全證書加密 瀏覽:416
雲伺服器如何訪問百度 瀏覽:279
常州電信伺服器dns地址 瀏覽:839
用小方塊製作解壓方塊 瀏覽:42
圖像壓縮編碼實現 瀏覽:68
特色功能高拋低吸線副圖指標源碼 瀏覽:71