Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
392 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 Answer

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();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...