java list 组合_用java找出这几个list,所有可能的组合,并且组合结果的list中的数据不允许重复...

展开全部

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

import java.util.TreeSet;

public class MyCode {

static TreeSet ts = new TreeSet<>();

static StringBuffer stb = new StringBuffer();

public static void main(String args[]) {

32313133353236313431303231363533e58685e5aeb931333431366430List a = new ArrayList<>();

a.add(1);

a.add(2);

a.add(3);

List b = new ArrayList<>();

b.add(2);

b.add(3);

b.add(4);

b.add(5);

List c = new ArrayList<>();

c.add(5);

c.add(6);

List d = new ArrayList<>();

d.add(5);

List e = new ArrayList<>();

e.add(7);

String arr[];

List names = (Arrays.asList("a,b,c,d,e".split(",")));

ArrayList> list = new ArrayList<>();

list.add(a);

list.add(b);

list.add(c);

list.add(d);

list.add(e);

for (int i = 0; i < list.size(); i++) {

List temA = new ArrayList<>(list.get(i));

for (int j = i + 1; j < list.size(); j++) {

List temB = new ArrayList<>(list.get(j));

temA.retainAll(temB);

if (temA.size() <= 0) {

List temC = new ArrayList<>(list.get(i));

List temD = new ArrayList<>(list.get(j));

temC.addAll(temD);

stb.append(names.get(i) + "," + names.get(j) + ",");

getNameIndex(temC, list, i, j, names);

arr = stb.toString().split(",");

Arrays.sort(arr);

ts.add(Arrays.toString(arr));

stb.delete(0, stb.length());

}

}

}

for (Iterator it = ts.iterator(); it.hasNext();) {

System.out.println(it.next());

}

}

private static void getNameIndex(List listTem, List> listB, int x, int y,

List names) {

for (int i = 0; i < listB.size(); i++) {

if (i == x || i == y) {

continue;

}

List listN = new ArrayList<>(listTem);

List listM = new ArrayList<>(listB.get(i));

listN.retainAll(listM);

if (listN.size() <= 0) {

stb.append(names.get(i));

break;

}

}

}

}

8437c917e34c25e62237bb9ea78db669.png

你这个,麻雀虽小,五脏俱全呢,看似一个简单的小玩意,挺费劲的!

主要用的是交集,并集,难点就是因为嵌套,有点饶头..你自己琢磨一下吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,你遇到了一个Java异常:Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class javax.mail.internet.ParameterList。这个异常通常发生在Java程序,当尝试使用javax.mail.internet.ParameterList类时,该类无法被正确初始化时会抛此异常。 这个异常通常是由于缺少相关的依赖库或者类路径配置错误导致的。为了解决这个问题,你可以尝试以下几个步骤: 1. 确保你的项目包含了javax.mail库的正确版本。你可以通过在项目的构建文件(如pom.xml或build.gradle)添加javax.mail的依赖来解决这个问题。例如,在Maven项目,你可以添加以下依赖项: ```xml <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.6.2</version> </dependency> ``` 2. 检查你的类路径配置是否正确。确保你的项目包含了javax.mail的jar文件,并且这些jar文件在运行时可以被正确加载。你可以检查你的项目的构建路径或者类路径配置,确保它们包含了正确的jar文件。 3. 如果你使用的是IDE(如Eclipse或IntelliJ IDEA),尝试重新导入项目或者刷新依赖。有时候,IDE可能无法正确识别或加载依赖项,导致类不到的错误。 如果你尝试了以上步骤仍然无法解决问题,可能需要进一步检查你的代码和环境配置。你可以检查你的代码是否正确引用了javax.mail.internet.ParameterList类,并且没有其他与该类相关的错误。另外,你也可以检查你的Java运行环境是否正确配置,并且没有其他冲突或错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值