Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重新打印字符串数组_Java_Arrays_Permutation - Fatal编程技术网

Java 重新打印字符串数组

Java 重新打印字符串数组,java,arrays,permutation,Java,Arrays,Permutation,我有一个字符串数组 "Ben", "Jim", "Ken" 如何将上述阵列打印3次,使其看起来像这样: "Ben", "Jim", "Ken" "Jim", "Ben", "Ken" "Ken", "Jim", "Ben" 我只希望初始数组中的每个项都显示为第一个元素。其他项目的显示顺序并不重要 更多例子 输入 "a","b","c","d" public void printArray(String[] s){ } 输出 "a","b","c","d" "b","a","c

我有一个字符串数组

 "Ben", "Jim", "Ken"
如何将上述阵列打印3次,使其看起来像这样:

 "Ben", "Jim", "Ken"
 "Jim", "Ben", "Ken"
 "Ken", "Jim", "Ben"
我只希望初始数组中的每个项都显示为第一个元素。其他项目的显示顺序并不重要

更多例子

输入

"a","b","c","d"
 public void printArray(String[] s){
 }
输出

"a","b","c","d"
"b","a","c","d"
"c","b","a","d"
"d","a","c","d"
方法签名

"a","b","c","d"
 public void printArray(String[] s){
 }
public void打印数组(字符串[]s){
对于(int i=0;i
公共void打印数组(字符串[]s){
对于(int i=0;i
for(int i=0;i
for(int i=0;i这听起来像是一个家庭作业问题,所以虽然我觉得不应该回答它,但我会给出一个简单的提示。您正在寻找一种算法,它将给出“for循环索引”的所有排列(组合)所以如果你有三个元素a,b,c,它们的索引是0,1,2,我们需要的是一种方法来生成0,1,2的排列,这就导致了一个普通的数学问题,一个非常简单的数学公式


请看这里:

这听起来像是一个家庭作业问题,所以虽然我觉得不应该回答它,但我会给出一个简单的提示。您正在寻找一种算法,它将给出“for循环索引”的所有排列(组合)所以如果你有三个元素a,b,c,它们的索引是0,1,2,我们需要的是一种方法来生成0,1,2的排列,这就导致了一个普通的数学问题,一个非常简单的数学公式


请看这里:

我将尝试解释这个问题的理论/数学,而不是直接给出代码

我能想出的解决这个问题的两个最简单的方法是

  • 循环浏览所有元素
  • 选择一个元素并列出其余元素
第一种方法需要遍历索引,然后遍历数组中的所有元素,并在必要时循环回开始,在返回原始元素时终止

第二种方法要求您遍历索引,打印原始元素,然后从头开始遍历数组,跳过原始元素

如您所见,这两种方法都需要两个循环(在数组中迭代两次)

在伪代码中,第一种方法可以写成:

for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = i + 1; j != i; j++) {
        if (j is_larger_than array_end) {
            set j equal to array_start
        }
        print array_element[j]
    }
}
for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = array_start; j < array_end; j++) {
        if (j is_not_equal_to i) {
            print array_element[j]
        }
    }
}
for(i=array\u start;i
在伪代码中,第二种方法可以写成:

for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = i + 1; j != i; j++) {
        if (j is_larger_than array_end) {
            set j equal to array_start
        }
        print array_element[j]
    }
}
for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = array_start; j < array_end; j++) {
        if (j is_not_equal_to i) {
            print array_element[j]
        }
    }
}
for(i=array\u start;i
我将尝试解释这个问题的理论/数学,而不是直接给出代码

我能想出的解决这个问题的两个最简单的方法是

  • 循环浏览所有元素
  • 选择一个元素并列出其余元素
第一种方法需要遍历索引,然后遍历数组中的所有元素,并在必要时循环回开始,在返回原始元素时终止

第二种方法要求您遍历索引,打印原始元素,然后从头开始遍历数组,跳过原始元素

如您所见,这两种方法都需要两个循环(在数组中迭代两次)

在伪代码中,第一种方法可以写成:

for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = i + 1; j != i; j++) {
        if (j is_larger_than array_end) {
            set j equal to array_start
        }
        print array_element[j]
    }
}
for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = array_start; j < array_end; j++) {
        if (j is_not_equal_to i) {
            print array_element[j]
        }
    }
}
for(i=array\u start;i
在伪代码中,第二种方法可以写成:

for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = i + 1; j != i; j++) {
        if (j is_larger_than array_end) {
            set j equal to array_start
        }
        print array_element[j]
    }
}
for (i = array_start; i < array_end; i++) {
    print array_element[i]
    for (j = array_start; j < array_end; j++) {
        if (j is_not_equal_to i) {
            print array_element[j]
        }
    }
}
for(i=array\u start;i
您是否已经尝试过任何东西?在这里提问之前,请尝试尝试尝试一下。这是一个常见的初学者错误,但请记住,本网站不适合人们为您做这些工作。您是否已经尝试过任何东西?请在这里提问之前尝试尝试一下。这是一个common初学者的错误,但请记住,本网站不是为人们为您工作的。请在您的代码中提供解释或注释,否则,尽管这是非常基本的,但对不知道代码如何工作的人来说毫无意义。请在您的代码中提供解释或注释,否则,尽管如此非常基本,这对不知道代码如何工作的人来说毫无意义。请在代码中提供解释或注释,否则,尽管这非常基本,但对不知道代码如何工作的人来说毫无意义。@万能的,我只回答了这个问题,因为它太简单了。如果你认为它不够,请感受一下你可以自由地对另一个答案投赞成票或写你自己的。如果你认为我的答案完全没有帮助,请随意投反对票或标记它