java 课后习题 删除奇数元素下标 然后再删除值为奇数的下标

知识点:
核心理解:
假设 n 为奇数,删除该下标元素后,根据元素下标删除后会自动回落的特型,下一个奇数既是n+1;

总感觉有点不对劲,有bug 的话麻烦大神指点一二

public class    Test {
    //编写方法... 该方法仅保留数组a 中下标为偶数 且 其值也为偶数的元素,其余的元素全部删除
    //剩余元素形成一个新的数组b 并返回
    public static void main(String[] args) {
        int[] a = new int[100];

        System.out.println("原始数组:");
        System.out.println();
        for (int i = 0;i < a.length;i++){
            a[i] = (int)(101*Math.random());

            //打印原始数组
            System.out.print(a[i]+"\t");
        }

        //实例化处理对象
        Test t = new Test();
        int[] b=t.delete(a);

        //打印处理后的数组
        System.out.println("处理后的数组:");
        System.out.println();
        for (int i = 0; i < b.length;i++){
            System.out.print(b[i]+"\t");
        }
    }

    public int[] delete(int[] a){

        int[] b ={};//按要求返回int 数组b

        int temp = 1;

        Vector<Integer> v = new Vector<>();
        for (int i = 0;i < a.length;i++){
            v.addElement(a[i]);
        }

        //先删除所有下标为奇数的下标
        for (int i =1;i < v.size();i++){
            v.removeElementAt(i);
        }

        System.out.println(v.size());
        for (int i = 0;i < v.size();i++){
            //先删除所有值为奇数的下标
            if (v.elementAt(i) % 2 == 1){
                v.removeElementAt(i);
            }
        }

        //按要求返回b数组
        b = new int[v.size()];

        for (int i = 0; i < b.length;i++){
            b[i] = v.elementAt(i);
        }
        return b;
    }
}
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页