怎么从数组中删除元素

怎么从数组中删除元素,第1张

数组中删除元素,例如:
数组 int arrys={1,2,3,4,5,}
如何删除“3”这个元素
代码:
public class $ {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
Systemoutprint("删除前:");
show(arr);
int[] brr = new int[arrlength - 1];
int idx = 0;
for (int i : arr) {
if (i != 3) {
brr[idx++] = i;
}
}
Systemoutprint("删除后:");
show(brr);
}
private static void show(int[] arr) {
for (int i : arr) {
Systemoutprint(i + ",");
}
Systemoutprintln();
}
}

public static void main(String[] args) {
String[] arrays={"1","2","3","5","6"};
for (int i = 0; i < arrayslength; i++) {
if("2"equals(arrays[i])){
//移除掉元素2
for (int j = i+1; j < arrayslength; j++) {
arrays[i]=arrays[j];
}

}
}
}

无法删除,数组是个连续的存储空间,无法删除,如果非要那样干的话,
把那个元素值改为0x3f3f3f3f(最大的int),也就是放到最大,再加就爆掉了
你处理的时候判断一下就是了
把题目发给我看看
望采纳,谢谢

1、splice

splice(index,len,[item]) 注释:该方法会改变原始数组。

splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值

index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除 *** 作的话 item为空

如:arr = ['a','b','c','d']

删除 ---- item不设置

arrsplice(1,1) //['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变

arrsplice(1,2) //['a','d'] 删除起始下标为1,长度为2的一个值,len设置的2

替换 ---- item为替换的值

arrsplice(1,1,'ttt') //['a','ttt','c','d'] 替换起始下标为1,长度为1的一个值为‘ttt',len设置的1

arrsplice(1,2,'ttt') //['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt',len设置的1

添加 ---- len设置为0,item为添加的值

arrsplice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下标为1处添加一项‘ttt'

看来还是splice最方便啦

2、delete

delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变

如:delete arr[1] //['a', ,'c','d'] 中间出现两个逗号,数组长度不变,有一项为undefined

1、只要将删除后的数据元素像前移动一位即可。
2、例程:

#include <stdioh>
// 删除长度为len的数组dat中索引为idx的元素。
void remove(int dat, int len, int idx)
{
    (len)--;
    if (idx < 0 || idx >= len)
        return;
    for (int i = idx; i < len; i++)
        dat[i] = dat[i+1];
}
void output(int dat, int len)
{
    for (int i = 0; i < len; i++)
        printf("%d ", dat[i]);
    printf("\n");
}
int main()
{
    int a[10]= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, len = 10;
    remove(a, &len, 5);
    output(a, len);
    remove(a, &len, 2);
    output(a, len);
    return 0;
}

删除步骤如下:

ar arr = [ 1, 2, 3, 4, 5 ];

//原始数组

alert("原始数组:" + arr);// 1,2,3,4,5

//删除并且返回第一个元素

注:重复以上步骤即可

一、JavaScript

简称为js,一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型;

它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能;

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。

二、js表达式:

表达式是指将常量、变量、函数、运算符和括号连接而成的式子;

根据运算结果的不同,表达式可分为算术表达式、字符表达式、和逻辑表达式。

我的思路是 先循环遍历这个数组 用equals方法判断是否含有内容符合要求的元素 如果找到了 要记录下索引 定义一个中间变量temp 利用这个索引 把要删除的那个元素和数组最后一个元素交换位置 然后用javautilArrays类中的copy方法 该方法是数组复制的方法 有两个参数 一个是复制的元数组 一个是复制元素的个数 你在第二个参数那改成比原来数组少1 这样就删除了
不过java不是还有一个更好的数据结构叫集合 数组这样 *** 作是不是很恶心? 这种场合你完全可以用List集合代替


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13338770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存