社区
Java
帖子详情
java数组删除元素,不要引进新的存储空间
chenshan19870108
2011-10-20 04:54:47
要求在原数组上进行删除,不可以引进新的存储结构。以免内存消耗过度
...全文
1201
18
打赏
收藏
java数组删除元素,不要引进新的存储空间
要求在原数组上进行删除,不可以引进新的存储结构。以免内存消耗过度
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenshan19870108
2011-10-21
打赏
举报
回复
恩,我实际也是这么处理的,记录了删除元素的个数,最后对数组进行截取
Jobernowl
2011-10-21
打赏
举报
回复
这个太简单了 ArrayList删除源码上有
Antineutrino
2011-10-21
打赏
举报
回复
这种情况使用链表更合适,如果必须使用数组,就要用一个计数器来跟踪数组有效部分的长度。
分两种情况:
1. 删除后仍保持原来的相对顺序
2. 元素的顺序无所谓
第一种情况,删除一个元素时,必须将它后面的所有元素向前挪一个位置
第二种情况,可以直接用最后的元素代替被删除的元素
删除一个元素之后,更新计数器就可以了。
Scott11Zhan
2011-10-21
打赏
举报
回复
arr[n] = 0;
wanquan812
2011-10-21
打赏
举报
回复
你可以覆盖 然后把数组后面的值前移 不过数组最后面的值会是null 或者0
孟祥月
2011-10-20
打赏
举报
回复
看来挺复杂的啊
chenshan19870108
2011-10-20
打赏
举报
回复
我是把删除的覆盖了,当然最后的多余元素不用管
chenshan19870108
2011-10-20
打赏
举报
回复
大家看看我的做法,给给意见
public class TestCompare {
private Integer[] nums = {1,1,1,1,1,1,1,1,2,2,3,3,4,5,6,7,8,9};
private int deleNums = 0;
public static void main(String[] args) {
TestCompare tc = new TestCompare();
tc.test();
}
public void test() {
int begin= 0;
int i=begin;
while(i<nums.length-1) {
i++;
if(nums[begin]!=nums[i]){
nums[i-deleNums] = nums[i];
begin = i-deleNums;
}else {
deleNums++;
}
}
for(int j=0;j<nums.length;j++)
System.out.println(nums[j]);
}
}
lhjtianji
2011-10-20
打赏
举报
回复
这个问题以前在学校的时候,当时解决的办法是用的链串
zhang99092
2011-10-20
打赏
举报
回复
把数组元素引用值至为空行不行
yiranwuyu
2011-10-20
打赏
举报
回复
谁知数组中你想删除的元素为空
shine333
2011-10-20
打赏
举报
回复
我现在的数组是{-1,0,1,2},请问,删除2以后变成什么??
{-1,0,1}需要新的空间
{-1,0,1,X},请问,X应是什么,才能区分这个位置已经删除
chenshan19870108
2011-10-20
打赏
举报
回复
例如删除一个数组中的重复元素,类似于SQL里面的distinct方法的功能
Antineutrino
2011-10-20
打赏
举报
回复
嗯,要描述清楚问题
shine333
2011-10-20
打赏
举报
回复
[Quote=引用楼主 chenshan19870108 的回复:]
要求在原数组上进行删除,不可以引进新的存储结构。以免内存消耗过度
[/Quote]
原来数组长度10,删除了一个变成9个元素,问,现在的数组长度是多少?
1,长度变成9,那必然需要新的空间
2,长度还是10,那怎么区分被删除的部分?
chenshan19870108
2011-10-20
打赏
举报
回复
那会不会新建内存呢 是要按始末位置进行复制吗 这个操作对于大量数据呢
bohe_198878
2011-10-20
打赏
举报
回复
那就用数组的复制好了
chenshan19870108
2011-10-20
打赏
举报
回复
求高手解答,谢谢了
微服务系列第六季-
Java
数组
的使用
第六季主要是给大家介绍一下
Java
数组
的使用,包括:
数组
的概念、
数组
的基本用法、处理
数组
、
数组
做为参数使用、多维
数组
的定义及初始化、二维
数组
求和、班级学生个人求和、班级学生个人成绩求最大值、班级学生个人...
java
的mwcellarray_
Java
数组
1.
Java
数组
的定义
Java
语言中提供的
数组
是用来存储固定大小的同类型元素。2.
Java
数组
的声明首先必须声明
数组
变量,才能在程序中使用
数组
。下面是声明
数组
变量的语法:dataType[]arrayRefVar; // 首选的方法或 ...
JAVA
数组
动态扩容的方法
java
中,初始化
数组
要求指定
数组
容量,但在许多情况下需要扩充
数组
容量。 有两种方法可以实现
数组
容量扩容: public class Demo1 { static int []array=new int [20]; public static void main(String[] args...
Java
数组
备注:如有错误请联系。...
Java
语言中提供的
数组
是用来存储固定大小的同类型元素。 2.
Java
数组
的声明 首先必须声明
数组
变量,才能在程序中使用
数组
。下面是声明
数组
变量的语法: dataType[]array...
JAVA
数组
子集_从0到1学
java
:集合
点击上方“罗晓胜”,马上关注,您的支持对我帮助很大上期文章从0到1学
java
:面对对象基础从0到1学
java
:面对对象的高级特性从0到1学
java
:异常处理/ 前言 /很多时候,我们专心研究一个东西的时候,往往忘记了我们...
Java
50,530
社区成员
85,610
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章