java之数组交叉遍历组合

package cn.go4mi.util;

public class Turns {
    //测试main方法
    public static void main(String[] args) {
        String [] a={"a","b","c"};
        String [] b={"d","e"};
        String [] c={"f","j"};
        String [] d={"h","i"};
        String[] add = new Turns().turns(a, b,c,d);
        for (String string : add) {
            System.out.println(string);
        }

    }
    /**
     * 两两遍历
     * @param array1
     * @param array2
     * @return
     */
    public static String[] doubleTurns(String [] array1,String[] array2){
        String [] target=new String[array1.length*array2.length];
        for (int i = 0,a1=0,a2=0; i <array1.length*array2.length; i++) {
            target[i]=array1[a1]+","+array2[a2];
            a2++;
            if(a2==array2.length){
                a2=0;
                a1++;
            }
        }
        return target;
    }
    /**
     * 遍历组合
     * @param arrays
     * @return
     */
    public static String[] turns(String[] ...arrays){
        if(arrays.length==1){
            return arrays[0];
        }
        if(arrays.length==0){
            return null;
        }
        //获得总结果数
        int count=0;
        for (int i = 0; i < arrays.length; i++) {
            count*=arrays[i].length;
        }
        String target[]=new String[count];
        //两两遍历
        for (int i = 0; i < arrays.length; i++) {
            if(i==0){
                target=doubleTurns(arrays[0],arrays[1]);
                i++;
            }else{
                target=doubleTurns(target,arrays[i]);
            }
        }
        return target;
    }
}
时间: 2024-10-15 00:07:52

java之数组交叉遍历组合的相关文章

不定长数组取值交叉遍历组合生成算法

代码例如以下: #include <stdio.h> int factor[3][4] = { {0, 1, 2, 3}, {0, 1}, {0, 1, 2}, }; int lengths[3] = {4, 2, 3}; void recurisionAccess(int factor[3][4], int lengths[3], int colum, int row) { int i = 0; int j = 0; int k = 0; int len = 0; int len_num =

Java中数组的遍历

(I)标准for循环遍历数组 例如代码片段: int [] nums = new int [] {0,1,2,3,4,5,6,7,8,9}; for(int i=0;i<11;i++){ System.out.println(num[i]); } (II)for-each循环遍历数组 语法: for(<迭代变量声明>:<数组>){ 语句: } 例如代码片段: for(int n : nums){ System.out.println(n); }

java 对数组进行截取组合操作

1.使用skip跳过和limit限制组合,示例: Integer skip = (page.getPageNum() - 1) * page.getPageNum(); Integer limit = page.getPageNum(); List<User> collect = users.stream().skip(skip).limit(limit).collect(Collectors.toList()); 原文地址:https://www.cnblogs.com/kingsonfu/

【JAVA】for,foreach遍历数组时候一些区别

public class ArrayTest { static public void incr(int a[]) { for (Integer i : a) { i += 1; } } static public void incr1(int a[]) { for (int i = 0, len = a.length; i < len; i++) { // a[i] = a[i] + 1; a[i]++; } } static public void main(String args[]) {

java中数组、集合、字符串之间的转换,以及用加强for循环遍历

java中数组.集合.字符串之间的转换,以及用加强for循环遍历: 1 @Test 2 public void testDemo5() { 3 ArrayList<String> list = new ArrayList<String>(); 4 list.add("甲乙1"); 5 list.add("甲乙2"); 6 list.add("甲乙3"); 7 list.add("甲乙4"); 8 //

java 数组的遍历 异常

在操作数组时,经常需要依次访问数组中的每个元素,这种操作称作数组的遍历 1 public class ArrayDemo04 { 2 public static void main(String[] args) { 3 int[] arr = { 1, 2, 3, 4, 5 }; // 定义数组 4 // 使用for循环遍历数组的元素 5 for (int i = 0; i < arr.length; i++) { 6 System.out.println(arr[i]); // 通过索引访问元

Java中数组遍历

就是将数组中的每个元素分别获取出来,就是遍历.遍历也是数组操作中的基石. 数组的索引是 0 到 lenght-1 ,可以作为循环的条件出现 public class ArrayDemo4 { public static void main(String[] args) { int[] arr = {1, 3, 5, 7, 9}; //进行数组的遍历 for (int i = 0; i < arr.length; i++){ System.out.println(arr[i]); } } } 原文

Java中数组的特性

转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间.在C,C++等语言中,数组的定义简洁清晰,而在Java中确有一些会让人迷惑的特性.本文就尝试分析这些特性. Java中的数组是对象吗? Java和C++都是面向对象的语言.在使用这些语言的时候,我们可以直接使用标准的类库,也可以使用组合和继承等面向对象的特性

java自学-数组

1.数组是什么 前边说过java的基本数据类型,数组,就是装这些基本类型的容器.每个基本类型的变量都是单个的,数组就是这些单个元素的组合. 2.创建数组 方式一 格式: 数组存储的数据类型[] 数组名字= new 数组存储的数据类型[长度]; 数组定义格式详解: 数组存储的数据类型: 创建的数组容器可以存储什么数据类型. [] : 表示数组. 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组. new:关键字,创建数组使用的关键字. 数组存储的数据类型: 创建的数组容器可以