Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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 - Fatal编程技术网

Java 在随机数组中插入数字

Java 在随机数组中插入数字,java,arrays,Java,Arrays,我需要一些帮助,将数字8插入到一个数组中,该数组给我随机值。数组必须是有序的。例如,如果我有一个数组(1,5,10,15),我必须在5和10之间插入数字8。我有一个问题,我如何才能找到一个方法来找到索引,在那里8将被放置,因为数组是随机的,它可以是任何东西。以下是我目前的代码: public class TrickyInsert { public static void main(String[] args) { int[] mysteryArr = generateRandArr(

我需要一些帮助,将数字8插入到一个数组中,该数组给我随机值。数组必须是有序的。例如,如果我有一个数组(1,5,10,15),我必须在5和10之间插入数字8。我有一个问题,我如何才能找到一个方法来找到索引,在那里8将被放置,因为数组是随机的,它可以是任何东西。以下是我目前的代码:

public class TrickyInsert {

public static void main(String[] args) {

    int[] mysteryArr = generateRandArr();

    //print out starting state of mysteryArr:
    System.out.print("start:\t");
    for ( int a : mysteryArr ) {
        System.out.print( a + ", ");
    }
    System.out.println();


    //code starts below

    // insert value '8' in the appropriate place in mysteryArr[]
    int[] tmp = new int[mysteryArr.length + 1];
    int b = mysteryArr.length;
    for(int i = 0; i < mysteryArr.length; i++) {
        tmp[i] = mysteryArr[i];

    }
    tmp[b] = 8;
    for(int i =b ; i<mysteryArr.length; i++) {
        tmp[i+1] = mysteryArr[i];
    }
    mysteryArr = tmp;
public类trickyinstert{
公共静态void main(字符串[]args){
int[]mysteryArr=generateRandArr();
//打印mysteryArr的开始状态:
系统输出打印(“开始:\t”);
对于(int a:mysteryArr){
系统输出打印(a+“,”);
}
System.out.println();
//代码从下面开始
//在mysteryArr[]中的适当位置插入值“8”
int[]tmp=newint[mysteryArr.length+1];
int b=mysteryArr.length;
for(int i=0;i对于(int i=b;i在您的示例中,随机数组被排序。如果是这种情况,只需插入8并再次排序。

在您的示例中,随机数组被排序。如果是这种情况,只需插入8并再次排序。

只需添加数字,然后使用
数组。sort
方法

int b = mysteryArr.length;
int[] tmp = new int[b + 1];    
for(int i = 0; i < b; i++) {
    tmp[i] = mysteryArr[i];
}
tmp[b] = 8;
mysteryArr = Arrays.sort(tmp);
intb=mysteryArr.length;
int[]tmp=新的int[b+1];
对于(int i=0;i
只需添加数字,然后使用
数组。排序
方法

int b = mysteryArr.length;
int[] tmp = new int[b + 1];    
for(int i = 0; i < b; i++) {
    tmp[i] = mysteryArr[i];
}
tmp[b] = 8;
mysteryArr = Arrays.sort(tmp);
intb=mysteryArr.length;
int[]tmp=新的int[b+1];
对于(int i=0;i
我建议使用二进制搜索找到合适的索引。找到索引后,可以使用

System.arraycopy(Object src, int srcIndex, Obj dest, int destIndex, int length)
将左半部复制到新数组中(长度比现有数组长一倍),然后复制新元素,最后复制右半部。这样就不必在每次插入元素时对整个数组进行排序

另外,下面的部分没有任何作用

for(int i =b ; i<mysteryArr.length; i++) {
    tmp[i+1] = mysteryArr[i];
}

for(inti=b;i我建议使用二进制搜索来找到合适的索引。找到索引后,可以使用

System.arraycopy(Object src, int srcIndex, Obj dest, int destIndex, int length)
将左半部复制到新数组中(长度比现有数组长一倍),然后复制新元素,最后复制右半部。这样就不必在每次插入元素时对整个数组进行排序

另外,下面的部分没有任何作用

for(int i =b ; i<mysteryArr.length; i++) {
    tmp[i+1] = mysteryArr[i];
}
for(inti=b;i
intfindposition(inta,int[]inputArr)
{
对于(int i=0;i
int findPosition(int a,int[]inputArr)
{
对于(int i=0;i
只需复制数组,添加8,然后再次排序

        int[] a = generateRandArr();

        int[] b = Arrays.copyOf(a, a.length + 1);

        b[a.length] = 8;

        Arrays.sort(b);

只需复制数组,添加8,然后再次排序

        int[] a = generateRandArr();

        int[] b = Arrays.copyOf(a, a.length + 1);

        b[a.length] = 8;

        Arrays.sort(b);

是的,数组是随机的,但有顺序的数字。我的工作是编写代码,找出8可以放在哪里,从而使数组按顺序排列。我上面的代码是错误的。我只是想让你们知道我首先得到的是什么:/我相信这与int b有关,这是我一直坚持的部分。你需要对数组进行排序吗t 8会去哪里?是的,数组是随机的,但是有顺序的数字。我的工作是编写代码,找出8可以放在哪里,以使数组有序。我上面的代码是错误的。只是想让你们知道我首先得到了什么:/我相信它与int b有关,这是我真正需要排序的部分数组或计算出8的位置?