`
晴空之羽
  • 浏览: 8469 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java 笛卡尔集

阅读更多
今天测试过程中要造大量测试数据,就想着把几个集合里面的数据做个笛卡尔积,免得手动输入之苦。历时1小时,中间走了一些弯路。话不多说,上代码。
package demo.topTest.common;

import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

/**
 * Created by liwenjing on 15/7/24.
 */
public class OriginData {

    public String[] address_option={"城市","机场"};
    public String[] cabin={"Y","X"};
    public String[] city={"北京","上海"};
    public String[] airport={"NAY","SHA"};
    public String[] arrcity={"纽约","东京"};

    private List<String>  mixData(List<String[]> oldlist){
        List<String> result=new LinkedList<String>();
        if(oldlist!=null) {
            copyArrayToList(result, oldlist.get(0));
            for(int i=1;i<oldlist.size();i++){
                ListIterator iterator= (ListIterator) result.iterator();
                while(iterator.hasNext()){
                    String oldString= (String) iterator.next();
                    iterator.remove();
                    for(int j=0;j<oldlist.get(i).length;j++){
                        iterator.add(oldString+oldlist.get(i)[j]);
                    }
                }
            }
        }
        return result;
    }

    private void copyArrayToList(List list,String[] array){
        for(int i=0;i<array.length;i++){
            list.add(array[i]);
        }
    }

    public void printList(List list){
        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
    }

    public static  void main(String[] args){
        OriginData od=new OriginData();
        List<String[]> oldlist=new LinkedList<String[]>();
        oldlist.add(od.address_option);
        oldlist.add(od.cabin);
        oldlist.add(od.city);
        oldlist.add(od.airport);
        oldlist.add(od.arrcity);

        od.printList(od.mixData(oldlist));

    }
}



结果如图:

现在还是比较粗糙的。接下来要做的是从配置文件中读取数据,拼接好后放到csv或者xls里面,用作测试数据。
  • 大小: 26.8 KB
分享到:
评论
2 楼 晴空之羽 2015-07-28  
qindongliang1922 写道
这是什么需求?还做笛卡尔积

openAPI测试,测参数校验和处理逻辑,几十个入参,手动太繁琐了。在这个基础上把生成的数据放到csv或excel里,调用接口测快一些,但是结果比对还是需要人肉的。
1 楼 qindongliang1922 2015-07-27  
这是什么需求?还做笛卡尔积

相关推荐

    Java案例开发锦集

    案例3 用JDOM解析XML文件 案例4 Java编制的时钟 案例5 简单日历 案例6 系统内存状态监视程序 案例7 简单计算器 案例8 多线程断点续传 案例9 笛卡尔曲线 第四章 Java与游戏 案例1 ...

    【IT十八掌徐培成】Java基础第24天-04.分组查询-having-连接查询-笛卡尔积.zip

    今天我们要探讨的是Java基础中的数据库操作,特别是SQL查询技术,包括分组查询、HAVING子句、连接查询以及笛卡尔积。这些概念在处理复杂数据时至关重要。 首先,让我们了解分组查询。在SQL中,GROUP BY语句用于将...

    descartes-sku.js:笛卡尔算法,用于生成商品sku

    笛卡尔乘积算法笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(笛卡尔积),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。功能基于笛卡尔乘积算法基础上编写的一个...

    java面试题集(j2ee)

    本面试题集主要涵盖了J2EE中的核心概念、技术和实践问题,旨在帮助求职者准备面试,提升对Java Web开发的理解。 1. **Servlet与JSP**: - Servlet是Java编写服务器端程序的标准,用于处理HTTP请求。了解Servlet...

    经典Spark算子的JAVA实现.zip

    12. **cartesian()**: 计算两个数据集的笛卡尔积,每个元素与其他所有元素进行配对。 13. **sample()**: 用于随机抽取数据集的一部分,可用于创建数据集的样本或进行抽样分析。 14. **coalesce()**: 减少数据分区...

    kettle常见控件(输入、输出,字段选择、设置变量、记录集连接、值映射、字符串替换、js、Java)的使用案例

    - **Join Rows (cartesian product)**:此步骤实现多表连接,可以是笛卡尔积连接或其他类型的连接,如INNER JOIN、LEFT JOIN等。 6. 值映射: - **映射输入/映射输出**:用于数据转换,比如将特定值映射为其他值...

    java contour

    - **格网化数据**:等值线绘制的第一步是将原始数据转换为网格形式,通常通过笛卡尔坐标系统将连续数据空间离散化。 - **寻找等值点**:对于每个网格节点,计算其对应的数据值,并确定哪些节点位于特定的等值线上...

    数据库管理系统(dbms)(java)

    在数据库管理系统中,Java SE(Java Standard Edition)提供了丰富的类和接口,如java.sql包,它包含了连接数据库、执行SQL语句、处理结果集等功能。通过JDBC,我们能够连接到数据库,例如MySQL、Oracle或SQL Server...

    pozi:它是一个简单的分布式存储和计算框架,专为处理大规模文件而设计,与 hadoop 不同,它解决了一些问题,例如,将 microsoft office 文件转换为 pdf 或 swf 或计算几个大文件之间的笛卡尔积。由 Linux C 和 Java 构建,C 用于文件存储,Java 用于分布式计算

    3. **笛卡尔积运算**:在大数据背景下,pozi支持计算不同数据集的笛卡尔积,这在数据分析和组合不同数据源时非常有用。 4. **C语言用于文件存储**:C语言的低级别特性使其在处理文件系统的I/O操作时效率很高,这...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例239 结果集与Bean列表 301 实例240 编写MD5查看器 302 实例241 基于Base64编码 304 实例242 基于Base64解码 305 实例243 发送简单的Email 306 实例244 发送带附件的Email 308 实例245 读取XML文件属性 310 第3篇...

    Jchar

    5. **JChartDataset.class, JChartDatasetElement.class**: 这两个类可能涉及到数据集和数据集元素的管理,用户可以通过它们来组织和输入数据,以生成相应的图表。 6. **JChartChart_canvas.class**: 这可能表示 ...

    kettle 操作手册

    2.15 记录关联(笛卡尔输出):基于条件对两个数据集进行笛卡尔积操作。 2.16 Merge Join:合并两个步骤的数据,依据指定的字段进行关联。 2.17 行转列:将多行数据转换为列,通过关键字和分组字段实现。 2.18 ...

    2021-2022计算机二级等级考试试题及答案No.16127.docx

    15. 最小事件集:基本的事件包括Init(初始化)、Destroy(销毁)和Error(错误)。 16. 文件删除:按住Shift键删除文件会跳过回收站,直接永久删除。 17. 第三代计算机:第三代计算机主要采用集成电路,而非超大...

    京东2016实习生招聘笔试真题-技术岗位选择题一.docx

    - R与S的笛卡尔积表示为R×S,其结果集的行数等于两个集合行数的乘积。 ### 14. PPP帧的数据封装 - **知识点**: - 数据链路层协议:PPP帧的格式与封装。 - PPP帧中的转义字符处理。 - **解析**: - PPP帧中...

    apache-flink

    数据集变换包含了一系列的转换操作,比如连接(join)、笛卡尔积(cross)、规约(reduce)、聚合(aggregate)、共组(cogroup)、映射(map)、扁平映射(flatMap)、过滤(filter)、投影(project)、去重...

    MLDN魔乐科技_Oracle课堂8

    当两个表进行笛卡尔积,每个左表的行都会与右表的每一行进行配对,生成的结果集的行数等于两表行数的乘积。这通常是不期望的结果,除非确实需要所有可能的组合。在实际应用中,通常需要避免或通过添加适当的连接条件...

Global site tag (gtag.js) - Google Analytics