Как удалить индекс из массива в java - PullRequest
1 голос
/ 15 февраля 2020

Я хочу удалить данный индекс из массива и обновить массив после удаления индекса. Размер массива должен совпадать с предыдущим.

Задача такая:

import java.util.*;
class Example{
    public static void main(String args[]){
        int[] xr={0,10,20,30,40,50,60,70,80,90};
        System.out.println(Arrays.toString(xr));//[0,10,20,30,40,50,60,70,80,90]
        delete(2, xr); //delete(int index, int[] array)
        System.out.println(Arrays.toString(xr));//[0,10,30,40,50,60,70,80,90,0]

        delete(2, xr); //delete(int index, int[] array)
        System.out.println(Arrays.toString(xr));//[0,10,40,50,60,70,80,90,0,0]

        delete(3, xr); //delete(int index, int[] array)
        System.out.println(Arrays.toString(xr));//[0,10,40,60,70,80,90,0,0,0]
    }
}

Я пытался из этого способа. но я не уверен, что это правильно или нет.

import java.util.*;
class Example{
    public static void main(String args[]){
        int[] xr={0,10,20,30,40,50,60,70,80,90};
        System.out.println(Arrays.toString(xr));//[0,10,20,30,40,50,60,70,80,90]
        delete(2, xr); //delete(int index, int[] array)
        System.out.println(Arrays.toString(xr));//[0,10,30,40,50,60,70,80,90,0]

        delete(2, xr); //delete(int index, int[] array)
        System.out.println(Arrays.toString(xr));//[0,10,40,50,60,70,80,90,0,0]

        delete(3, xr); //delete(int index, int[] array)
        System.out.println(Arrays.toString(xr));//[0,10,40,60,70,80,90,0,0,0]
    }

    public static void delete(int index,int[] array)
    {
        for (int i = 0; i <array.length ; i++)
        {
            if (i==index)
            {
                array[i]=array[i+1];
            }
            if (i>index && i<array.length-1)
            {
                array[i]=array[i+1];
            }

        }   
        array[array.length-1]=0;    
    }
}

1 Ответ

0 голосов
/ 15 февраля 2020
public static void delete(int index,int[] array){
        if(index < 0 || index > array.length){
            return; // or throw error
        }

        for(int cpt = index; cpt < array.length - 1 ; cpt++){
            array[cpt] = array[cpt+1];
        }

        array[array.length - 1] = 0;
    }

Это работает, надеюсь, это то, что вы хотели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...