Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
396 views
in Technique[技术] by (71.8m points)

java - How to delete elements from an array?

How do I delete the integer at the given index and how do I compress myInts?

This is what I got but I keep getting an error.

public void deleteInt(int index) {

    int[] newInts = Arrays.copyOf(myInts, myInts.length);

    if (myInts[index] != 0) {
        myInts[index] = 0;

        for (int i : myInts) {
            if (myInts[i] != 0) {
                newInts[i] = myInts[i];
            }
        }
    }
    myInts = newInts;
    currentInt++;
}

This is the error I get:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

For that you should use something like ArrayList. Using Array leads you to making code like in your exaple which is generally a very bad idea from quality and performance perspective.

EDIT: See code below:

ArrayList<int> ret = new ArrayList<int>(Arrays.asList(myInts));
ret.remove(index);
return ret.toArray();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...