「java找出list多余」java list查找某一个元素
今天给各位分享java找出list多余的知识,其中也会对java list查找某一个元素进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、两个List对比取出多余的数据
- 2、面试题JAVA:给定list包含1-100中的95个数字,如何找出5个剩下的??
- 3、java 怎样把list中相同的数据找出来
- 4、Java中如何去除List中的重复的值
- 5、java中 list怎么去除多条数据?
两个List对比取出多余的数据
import java.util.ArrayList;
import java.util.List;
public class I {
public static void main(String[] args) {
List list1 = new ArrayList();
for (int i = 0; i 7; i++) {
list1.add(i);
}
List list2 = new ArrayList();
for (int i = 3; i 10; i++) {
list2.add(i);
}
System.out.println("List1:" + list1);
System.out.println("List2:" + list2);
System.out.println("交集为" + getIntersection(list1, list2));
}
public static List getIntersection(List list1,
List list2) {
List result = new ArrayList();
for (Integer integer : list2) {//遍历list1
if (list1.contains(integer)) {//如果存在这个数
result.add(integer);//放进一个list里面,这个list就是交集
}
}
return result;
}
}
(即C)中的内容。 特别提醒:此处的行序号参数
面试题JAVA:给定list包含1-100中的95个数字,如何找出5个剩下的??
个人认为,提高效率用空间换时间。
先定义一个int数组,大小101。
遍历list,当list.get(i)的值为1时 复制int[1]=1; 如果list.get(i)为99时,int[99]=1; 等等。
然后遍历数组 输出数组中为0的序号index。即是剩下的5个数字。
代码如下:
Integer[] array = new Integer[101];
for(Integer i:list){
array[i]=1;
}
for(int j=1;j101;j++){
if(array[i]==0){//输出剩下的5个
System.out.println(i);
}
}
个人认为此效率最高。
java 怎样把list中相同的数据找出来
依次处理list的元素list[i],用dup装去重元素,mul装重复元素。先检查dup是否包含元素list[i],如果包含则加入mul中。如果没有则加入dup中。最后mul中就是重复数据,dup中就是去掉重复元素的列表。下面是一个实例,首先生成一个列表list,然后找出重复元素。
public class Duplication
{
public static void main(String[] args)
{
ListInteger list = new ArrayListInteger();
for(int i = 1;i = 10;i++)
{
if(i%3 == 0) continue;
if(i%2 == 0)
{
list.add(i);
list.add(i);
}
else
list.add(i);
}
System.out.println(list);
ListInteger dup = new ArrayListInteger();
ListInteger mul = new ArrayListInteger();
for(int a:list)
{
if(dup.contains(a))
mul.add(a);
else dup.add(a);
}
System.out.println(dup);
System.out.println(mul);
}
}
Java中如何去除List中的重复的值
你要去除的值是基本数据类型还是对象呢?
如果不想存重复数据何不用Set呢。。。
其实吧。。在知道上提问不如在网页上查。。这个是我查到的第一个。。网页里的内容,他一共使用了3种方式
最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。
但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢?
试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。
//set集合去重,不打乱顺序
public static void main(String[] args){
ListString list = new ArrayListString();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("aba");
list.add("aaa");
Set set = new HashSet();
List newList = new ArrayList();
for (String cd:list) {
if(set.add(cd)){
newList.add(cd);
}
}
System.out.println( "去重后的集合: " + newList);
}123456789101112131415161718
//遍历后判断赋给另一个list集合
public static void main(String[] args){
ListString list = new ArrayListString();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("aba");
list.add("aaa");
ListString newList = new ArrayListString();
for (String cd:list) {
if(!newList.contains(cd)){
newList.add(cd);
}
}
System.out.println( "去重后的集合: " + newList);
}1234567891011121314151617
//set去重
public static void main(String[] args){
ListString list = new ArrayListString();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("aba");
list.add("aaa");
Set set = new HashSet();
List newList = new ArrayList();
set.addAll(list);
newList.addAll(set);
System.out.println( "去重后的集合: " + newList);
}12345678910111213141516
//set去重(缩减为一行)
public static void main(String[] args){
ListString list = new ArrayListString();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("aba");
list.add("aaa");
List newList = new ArrayList(new HashSet(list));
System.out.println( "去重后的集合: " + newList);
}12345678910111213
hashset不进行排序,还有一种方法是用treeset,去重并且按照自然顺序排列,将hashset改为treeset就可以了。(原本的顺序是改变的,只是按照字母表顺序排列而已)
//去重并且按照自然顺序排列
List newList = new ArrayList(new TreeSet(list));
java中 list怎么去除多条数据?
楼上的回答的都太不负责人了,自己不都不确定,怎么能把别人教清楚
一种是用循环,一个个移除,一种是用removeAll函数
我给出removeAll的例子
public static void main(String[] args)
{
ListInteger listOne = new ArrayListInteger();
//add 8 elements
listOne.add(1);
listOne.add(2);
listOne.add(3);
listOne.add(4);
listOne.add(5);
listOne.add(6);
listOne.add(7);
listOne.add(8);
ListInteger listTwo = new ArrayListInteger();
//add 4 elments
listTwo.add(2);
listTwo.add(3);
listTwo.add(4);
listTwo.add(5);
listOne.removeAll(listTwo);//remove the elements in listOne which also in listTwo
System.out.println(listOne);//result [1,6,7,8]
}
java找出list多余的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java list查找某一个元素、java找出list多余的信息别忘了在本站进行查找喔。