在Java中动态生成2个列表的非重复排列对

2024-01-13

我一直在查看很多关于 Java 排列的不同帖子,但没有一个符合我的要求,所以我决定发布。

所以我有 2List<Integer>,我需要生成所有排列对 with 没有重复项其中该对的一个元素位于第一个列表中,第二个元素位于第二个列表中。

例如,如果我有:

List<Integer> l1 = Arrays.asList(new Integer[] {1, 2, 3});
List<Integer> l1 = Arrays.asList(new Integer[] {2, 3, 4});

然后我想要输出:

(1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4)

请注意,(3, 2) 不在这里,因为我已经有了 (2, 3)

我找不到任何图书馆可以做一些即使是远程接近的事情,我发现guava有类似的东西Permutations不过最近好像停产了什么的。

另外,我不想将列表存储在内存中,因为它可能非常大,我只需要一次迭代一对,所以我正在尝试找到生成它们的方法在飞行中。我正在考虑实施一个Iterable<Pair>但我似乎无法写出任何看起来有效的东西。

如果您知道已经在做此类事情的图书馆,那也会非常有帮助!


怎么样

class Pair {
    private int x, y;

    Pair(int x, int y) {
        this.x = x;
        this.y = y;
    }

    @Override public int hashCode() {
        int result = 1;
        result = 31 * result + x;
        result = 31 * result + y;
        return result;
    }

    @Override public boolean equals(Object obj) {
        if (this == obj)              return true;
        if (!(obj instanceof Pair))   return false;
        Pair tmp = (Pair) obj;
        return (tmp.x == x && tmp.y == y) || (tmp.x == y && tmp.y == x);
    }

    public String toString() {
        return "(" + x + "," + y + ")";
    }
}

class Testt {
    public static void main(String[] args) {
        List<Integer> l1 = Arrays.asList( 1, 2, 3 );
        List<Integer> l2 = Arrays.asList( 2, 3, 4 );

        Set<Pair> set = new HashSet<Pair>();
        for (int i : l1)
            for (int j : l2)
                set.add(new Pair(i, j));

        System.out.println(set);
    }
}

Output

[(1,2), (1,3), (1,4), (2,2), (2,3), (2,4), (3,3), (3,4)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Java中动态生成2个列表的非重复排列对 的相关文章

  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • Java 多头中的斐波那契计算显示负值

    我的斐波那契计算器工作正常 但当数字增加时 结果会出现负值 就像它是一个Integer超过其最大值 它正在使用缓存java util Map
  • Swagger 3.0.0:如果没有 SwaggerConfig 和 @Profile,则无法在生产中禁用

    我正在从 2 x 升级到 SpringFox Swagger 3 0 0 它引入了 Spring Boot 启动器springfox boot starter消除了对基于 2 x 的需要的依赖性SwaggerConfig NO LONGER
  • Spring Rest-API - 403 禁止错误响应

    我是 Spring 新手 我正在编写 REST API 我收到 403 删除 放置禁止错误 以下是我正在处理的示例 RequestMapping value noteId method RequestMethod PUT public Re
  • 如何限制用户键入时 JTextPane 中的字符数 (Java)

    我需要不允许在输入 X 后输入任何字符 我需要在输入 X 个字符后发出蜂鸣声 我知道如何在用户按 Enter 键后执行此操作 但我需要在用户按 Enter 键之前执行此操作 我从 Oracle 站点找到的方法是将 DocumentSizeF
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • 为什么Java HashMap的最大容量是1<<30而不是1<<31?

    Why is the maximum capacity of a Java HashMap 1 lt lt 30 and not 1 lt lt 31 even though the max value of an int is 231 1
  • splitByWholeSeparatorPreserveAllTokens 和 split 之间的区别

    有什么区别StringUtils splitByWholeSeparatorPreserveAllTokens and String split With splitByWholeSeparatorPreserveAllTokens 我们可
  • 为什么这不会导致 NullPointerException?

    public class Null public static void greet System out println Hello world public static void main String args Null null
  • 如何加快 jar 签名者的速度?

    我使用 ant 来签署我的 jars 以进行网络启动部署 Ant signjar 在 Web 启动签名时非常慢 如何加快签名过程 我找到了一种可能的解决方案 早些时候 在构建脚本 ant signjar 中 按顺序调用所有 jar 我们使用
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • 使用java读取Excel工作表的单列

    我有一张 Excel 表格 我想编写一个方法 该方法将参数作为要读取的列号 并返回一个由该列中的所有数据组成的数组 然后将该列元素放置在 xml 工作表中 我怎样才能编写一个方法来做到这一点 使用 Apache POI 您可以在他们的使用页
  • 将 @RequestLine 与 Feign 一起使用

    我有一个工作 Feign 接口定义为 FeignClient content link service public interface ContentLinkServiceClient RequestMapping method Requ
  • 当另一个线程发生事情时从主线程获取数据?

    目前我有一个线程正在运行一个侦听连接的套接字 当它收到连接时 它需要上传在主线程中收集的数据 即从主线程获取数据 但是 我传递了对象的实例 但它从未使用等待连接时收集的数据进行更新 有没有正确的方法来做到这一点 我用谷歌搜索了一下 似乎找不
  • 如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它

    我有一个 Spring 3 JPA 2 0 应用程序 在我的 Controller我需要一个初始化的对象 但我有代理 我需要能够以编程方式初始化它 我需要类似的功能org hibernate Hibernate initialize Obj
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • JTable中动态加载大量数据

    这是我的问题 我目前有一个 JTable 其中包含 5 000 到超过 200 000 行 你知道我要说什么了 数据已经加载到内存中了 这不是问题 但是如何 我可以创建一个高效的 JTable 以便它只加载以下行 是可见的 并且任何事件仅作
  • 如何使用 AEM 解析 org.apache.http.ssl?

    最终 我尝试在 Java 代码中使用 AWS S3 库来通过 AEM 启用服务器端 S3 上传 但在安装依赖项和 或由 AEM 识别时遇到了问题 每次我添加新的依赖项时 都会弹出五个问题 在我尝试构建的这个包中 这是我看到的错误 The i
  • Spring 和 Hibernate 连接池

    如何使用 Spring 和 Hibernate 配置连接池 Thanks Venu 您可以使用 DBCP 组件

随机推荐

  • 4.4 和 5.5 英寸的 UICollectionViewCell 动态调整大小

    我有 UICollectionView 与情节提要中的单元格 每个单元格的大小设置为 145x145 它们在 iPhone 4 5s 上看起来不错 但在 iPhone 6 和 6 上尺寸并没有按比例增加 我如何动态地设置而不是为每个设备手动
  • 使用 JSON 字符串搜索 MySQL 列中的特定值

    我目前有一个 MySQL 表 其中包含一个用于存储类别 ID 的列 这些 id 存储在 JSON 字符串中 我正在寻找最有效的方法来查询这些 JSON 字符串以获取特定 id 例如 Table posts Field cats 以下是 JS
  • 如何使用 GSON 创建 JSONArray

    您好 在我的项目中 我需要使用 GSON 类创建 JSONArray 类型 message msg 1 msg 2 msg 3 asec asec 1 asec 2 asec 3 我知道如何在 GSON 中创建带有键值的 JSONArray
  • 如何调试线性模型和预测的“因子具有新水平”错误[重复]

    这个问题在这里已经有答案了 我正在尝试制作并测试线性模型 如下所示 lm model lt lm Purchase data train lm prediction lt predict lm model test 这会导致以下错误 指出P
  • SQL Server 如果存在

    我必须将数据插入表中 但前提是它尚不存在 我使用以下方法检查现有行 IF EXISTS SELECT X FROM Table1 where id id 会使用 X 提高性能而不是使用列名 不 您可以使用 列名 NULL甚至1 0 根据 A
  • 如何将在执行同一数据流管道期间计算的架构写入 BigQuery?

    我的场景是此处讨论的场景的一种变体 如何使用数据流执行期间计算的架构写入 BigQuery https stackoverflow com questions 29440279 how do i write to bigquery usin
  • 通过宏从过滤范围中删除行

    我遇到以下代码问题 该代码试图过滤一组数据 然后删除可见行 目前 我收到 运行时 1004 错误 删除方法或范围类失败 该错误出现在代码的最后一行 我在网站上发现了一个类似的问题 答案似乎正是我在最后一行代码中得到的答案 Dim LastR
  • 如何在 GhostScript 中将 svg 转换为 eps

    你能帮我用 Ghostscript 将 svg 文件转换为 eps 的命令吗 我尝试在 Gimp 中打开 svg 文件 但它非常大 因此看起来 gimp 无法打开它或需要太长时间 我有两个要转换的文件 注意 我已经完成了从 png 到 sv
  • 如何重复 try- except 块

    我在 Python 3 3 中有一个 try except 块 我希望它无限期地运行 try imp int input Importance n t1 High n t2 Normal n t3 Low except ValueError
  • Celery/Redis 同一任务并行执行多次

    我有 2 个自定义任务 TaskA and TaskB 两者都继承自celery Task 调度程序启动TaskA时不时地 并且TaskA发射N times TaskB每次都有不同的论据 但由于某种原因 有时是相同的TaskB使用相同的参数
  • Javascript 的“for-in”函数是否只返回一个索引?

    这是我尝试运行的方法 function SayHello cars new Array cars 0 Toyota cars 1 Mitsubishi cars 2 Honda for car in cars alert car 这返回了
  • 实例化视图寻呼机android中的所有项目

    我有一个带有视图寻呼机和要显示三个页面的活动 当活动加载时 仅实例化前两个页面 即仅针对位置 0 和 1 调用 pageradapter 类中的 instantiateitem 有没有办法实例化所有三个页面 Try 设置屏幕外页面限制 2
  • osx-lion 上的 Apache 和 php 的两个版本

    我必须在我的 lion osx 上安装 PHP 版本 opt local bin php 5 3 12 usr bin php 5 3 10 当我尝试使用安装 php 模块时port 它指的是 opt local bin php 5 3 1
  • 您可以手动触发 ACTION_BATTERY_LOW 吗?

    我对 android 编程比较陌生 但我被告知大多数应用程序都有一个接收器 当 android 触发 ACTION BATTERY LOW 时 它会减少电池昂贵的活动 Android开发页面说 公共静态最终字符串ACTION BATTERY
  • Java字符串可以有多少个字符?

    我想下一个回文 http www spoj com problems PALIN 来自 Sphere Online Judge SPOJ 的问题 我需要找到最多一百万位的整数的回文 我考虑过使用 Java 的函数来反转字符串 但是它们允许字
  • 为什么我的 XPath 查询(抓取 HTML 表)只能在 Firebug 中运行,而不能在我正在开发的应用程序中运行?

    这样做的目的是为每周出现一两次的所有类似问题 但过于具体的问题而无法成为目标候选人 提供规范的问答 我正在开发一个应用程序 需要解析其中包含表格的网站 由于派生用于抓取网页的 XPath 表达式是一项无聊且容易出错的工作 因此我想使用Fir
  • C++ SSE SIMD框架[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道开源 C x86 SIMD 内在函数库 英特尔在其集成性能基元库中提供了我所需要的东西 但由于版权问题 我无法使用它 EDIT 我
  • 如何可视化或格式化差异/补丁文件? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个补丁文件 统一差异 就像输出svn diff git diff or diff u 我想查看它
  • 为什么我不能对具有相同内容的两个结构体进行互换分配?

    我正在尝试学习 C 但遇到了一些奇怪的事情 struct int i double j x y struct int i double j z 在这里 你可以看到我创建了两个struct其元素相同 为什么当我尝试分配时x z它将产生编译错误
  • 在Java中动态生成2个列表的非重复排列对

    我一直在查看很多关于 Java 排列的不同帖子 但没有一个符合我的要求 所以我决定发布 所以我有 2List