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);
}