java 如何获取得到两个list中不同的数据

java 如何获取得到两个list中不同的数据,第1张

// list不支持removeAll,removeAll修改集合本身

List list1 = ArraysasList("a","b","c");

List list2 = ArraysasList("b","c","d");

Set set1 = new HashSet(list1);

Set set2 = new HashSet(list2);

set1 removeAll(set2 );//set1 : a

Set set3 = new HashSet(list1);

set2 removeAll(set3 );//set2 : d

你是java的初学者吧,java一个方法的最基本的声明,由修饰符,返回值,方法名组成,这是必要的三个元素。最简单的方法也要由这三个部分组成,比如一个简单的方法

public void test(){

systemoutprintln("Hello World");

}

这里public是修饰符,表示是公共的方法,void表示返回值,void为空,表示这个方法不需要返回值,test是方法名,小括号里是方法的参数,没有即不需要参数,花括号为具体的java代码,也就是方法执行的过程。这里是直接在控制太输出Hello World这个句子。

回到你的问题,一个方法要返回List,即表示这个方法的返回值为List,那么遵循我最开始说的方法组成,这里的返回值就是List,所以把void 改成List即可。写个完整的例子,一个方法返回一个包含整数1~10的List。

public List getNumberList(){

List list=new ArrayList();

for(int i=1;i<=10;i++){

listadd(i);

}

return list;

}

此处方法返回值声明为List,即表示这个方法必须返回一个List,不返回List,至少要返回一个Null,因为java的方法,只要返回值不为void,都必须返回一个对象。

希望我的回答能帮到你~~

java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性

java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法

java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看

方法一:超级for循环遍历

for(String attribute : list) {

Systemoutprintln(attribute)

}

方法二:

对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历

for(int i = 0 ; i < listsize() ; i++) {

systemoutprintln(listget(i));

}

方法三:

集合类的通用遍历方式, 从很早的版本就有, 用迭代器迭代

Iterator it = listiterator();

while(ithasNext()) {

Systemouprintln(itnext)

}

寻找相同的数据, 可以使用多种方式,下面简单介绍2种

第一种: 循环遍历,然后在把每一个元素,在其他集合里查找, 如果都存在该元素,就把这个元素保存起来

第二种: java8流处理, 原理差不多, 但是语法比较简洁

稍微注意的是list1 = {'A','A','B'}和list2 = {'A','C'} 如果粗糙的求交集,会得到一个交集结果{'A','A'}, 但是如果要严格取交集那么结果是一个'A'

解决起来很简单, 创造一个boolean[] b2=new boolean[list2size]; 该boolean数组用于标记,list2的元素,哪些被使用了,哪些没有被使用被使用的立刻标记为true 下次不再使用

简单的参考代码: 可以按照自己的需求进行扩展和完善

import javautilArrayList;

import javautilArrays;

import javautilstreamCollectors;

public class Demo1 {

//为了方便, 全部定义成静态属性,方便静态方法内使用

static ArrayList<Integer> list1 = new ArrayList<Integer>(ArraysasList(1, 2, 3, 4, 5, 6));

static ArrayList<Integer> list2 = new ArrayList<Integer>(ArraysasList(11, 22, 33, 44, 55, 6));

static ArrayList<Integer> list3 = new ArrayList<Integer>(ArraysasList(12, 13, 14, 15, 16, 6));

public static void main(String[] args) {

test1();//java8 流处理

test2();//传统遍历循环进行处理

}

//流处理求交集

private static void test1() {

Systemoutprintln("list1,list2,list3的交集是:");

list1stream()filter(num -> list2contains(num) && list3contains(num))collect(CollectorstoList())stream()

forEach(Systemout::println);

}

//循环遍历求交集

private static void test2() {

ArrayList<Integer> result = new ArrayList<Integer>();

for (Integer num : list1) {

if (list2contains(num) && list3contains(num)) {

resultadd(num);

}

}

Systemoutprintln("list1,list2,list3的交集是:");

for (Integer i : result) {

Systemoutprintln(i);

}

}

}

以上就是关于java 如何获取得到两个list中不同的数据全部的内容,包括:java 如何获取得到两个list中不同的数据、java如何得到一个方法返回的list、java中怎么获取list长度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9599897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存