Java中用foreach对整数数组进行排序

Java中用foreach对整数数组进行排序,java,arrays,sorting,foreach,int,Java,Arrays,Sorting,Foreach,Int,所以我得到了这个学校作业: 编写一个方法,获取两个整数数组,并使用foreach循环将x[]排序为y[] x[]的大小为10,所有元素都用Math.random()初始化,y[]的大小为10,并用零填充。该方法应将x[]数组排序为y[]和返回y[] 因为我只剩下foreach,所以我无法找到一种方法来引用数组中的其他元素来比较它们。有什么想法吗?int[]疯狂排序(int[]x,int[]y){ int[] crazySort(int[] x, int[] y) { System.ar

所以我得到了这个学校作业:

编写一个方法,获取两个整数数组,并使用foreach循环将
x[]
排序为
y[]

x[]
的大小为10,所有元素都用
Math.random()
初始化,
y[]
的大小为10,并用零填充。该方法应将
x[]
数组排序为
y[]
返回y[]

因为我只剩下foreach,所以我无法找到一种方法来引用数组中的其他元素来比较它们。有什么想法吗?

int[]疯狂排序(int[]x,int[]y){
int[] crazySort(int[] x, int[] y) {

    System.arraycopy(x, 0, y, 0, x.length);

    int i = 1; // cheating
    for (int n : y) { // <- this is your foreach, you will never use the n variable :D
        if (i == x.length) break; // cheating again
        for (int j = i-1; j >= 0; j--) { // finally doing something reasonable
            if (y[j+1] < y[j]) {
                int temp = y[j+1];
                y[j+1] = y[j];
                y[j] = temp;
            }
        }
        i++;
    }

    return y;

}
数组复制(x,0,y,0,x.length); int i=1;//作弊 对于(int n:y){/=0;j--){//最终做了一些合理的事情 if(y[j+1]

希望老师觉得它有趣,至少和练习说明一样有趣。这个解决方案使用java“foreach”循环,练习语句并没有告诉您只使用它。

这是我100%认真的回答

public static void completelyLegitSort(int[] x,int[] y){
    for(int n:x){
        System.arraycopy(x, 0, y, 0, x.length);
        java.util.Arrays.sort(y);
        break;
    }
}

你说的“因为我只剩下foreach了,所以我想不出一种方法来引用数组中的其他元素来比较它们”是什么意思?Java有一种foreach语句
for(elem:collection){}
但你确定必须使用它吗?@RaulGogo:我在寻找一种方法来做一些类似于经典for循环的事情:“如果(x[I]Math.random()返回一个
double
,您正在排序
整数
-您计划如何将
double
转换为
int
?您可以使用手动递增的计数器进行欺骗,并执行简单的插入排序。
int[]x=new int[]{15,10,7,1,7,6,27,8,2,17};int[]y=新的int[10];整数指数;整数计数;对于(inti1:x){index=0;count=0;对于(inti2:x){if(i2
很抱歉格式化。我的一个朋友终于找到了答案。你朋友的解决方案似乎很“黑”,足以得到一个好分数P改变变量的名称,放几个无用的计数器,你就完成了。+1你是个天才!但是要有礼貌,不允许更改数组x!:DWhy调用
java.util.Arrays.sort(y)在for循环内(x.length次),而不是在循环后一次调用?@alfasin:循环在第一次调用后中断iteration@alfasin当前位置赞恩和我只是在开老师奇怪的练习的玩笑。基本上,他/她要求学生用锤子拧东西。我们接受了挑战,并喜欢寻找肮脏的工作环境来做练习。赞恩比我更轻蔑。@gd1我明白:)但为什么不直接使用赞恩回答中的第3-4行呢?