首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中删除元素后,缩短数组长度

在Java中删除元素后,缩短数组长度
EN

Stack Overflow用户
提问于 2010-05-06 09:00:20
回答 2查看 28.9K关注 0票数 5

注意:以下是我的家庭作业/作业,如果你愿意,请不要回答。

我想从一个基本的字符串数组(集合)中删除/移除一个元素,我不允许使用Collections..etc。

现在我有了这个:

代码语言:javascript
复制
void remove(String newValue) {

            for ( int i = 0; i < setElements.length; i++) {
               if ( setElements[i] == newValue ) {
                    setElements[i] = "";

               }
            }

       }   

我做了我想做的事情,因为它从数组中删除了元素,但不会缩短长度。以下是输出,基本上它删除了索引为#1的元素。

代码语言:javascript
复制
D:\javaprojects>java SetsDemo
Enter string element to be added
A
You entered A
Set size is: 5
Member elements on index: 0 A
Member elements on index: 1 b
Member elements on index: 2 hello
Member elements on index: 3 world
Member elements on index: 4 six
Set size is: 5
Member elements on index: 0 A
Member elements on index: 1
Member elements on index: 2 hello
Member elements on index: 3 world
Member elements on index: 4 six
EN

回答 2

Stack Overflow用户

发布于 2010-05-06 09:02:47

基本上,您需要创建一个新数组,该数组的长度等于旧数组的长度减1,然后您需要在循环中将有效元素从旧数组复制到新数组,然后用新数组替换旧数组。

由于这是homework,所以不提供详细信息。请随时发表评论,以获得更多澄清。

票数 1
EN

Stack Overflow用户

发布于 2010-05-06 09:06:04

代码语言:javascript
复制
void remove(String newValue) {
    if(setElements.length == 0) return;
    String [] array = new String[setElements.length-1];
    int j = 0;
    for ( int i = 0; i < setElements.length; i++) {
       if ( setElements[i] != newValue ) {
            array[j++] = setElements[i];
       }
    }
    setElements = array;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2777762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档