java 数组减除值_java – 删除数组中空值的最有效方法是什么.
我很好奇删除数组中空值的最有效方法是什么.这是我当前的null(0)删除方法.
public static int[] removeNull(int[] array){
int j = 0;
for( int i=0; i
{
if (array[i] != 0)
array[j++] = array[i];
}
int [] newArray = new int[j];
System.arraycopy( array, 0, newArray, 0, j );
return newArray;
}
这种方法的表现是什么?我原以为它是n.
解决方法:
是的,你的方法的时间复杂度是O(n) – 你的循环有n(数组的长度)迭代,复制数组需要的时间与复制数组的大小成正比,在这种情况下是O(n)in最坏的情况.
并且你不能做得更好(在时间复杂度方面),因为你必须迭代整个数组才能找到应该删除的元素.
如果您的目标是降低代码复杂性(即编写最短的代码量),则可以使用IntStream(需要Java 8或更高版本):
public static int[] removeNull(int[] array) {
return Arrays.stream(array).filter(i -> i != 0).toArray();
}
正如Andreas评论的那样,这种解决方案的优势在于保持原始数组不变.
标签:java,arrays,performance
来源: https://codeday.me/bug/20190828/1749198.html
java 数组减除值_java – 删除数组中空值的最有效方法是什么.相关推荐
- java 数组减除值_java数组操作 - osc_hwpd2zko的个人空间 - OSCHINA - 中文开源技术交流社区...
什么是数组: 程序 = 算法+数据结构 算法:解决问题的步骤,流程(顺序,分支,循环) 数据结构:将数据按照某种特定的结构来保存 数怎么存 设计良好的,合理的数据结构可以导致好的算法 数组:就是一种最 ...
- java初始化该字符串值_java字符串数组初始化和赋值
//一维数组 String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组 String[] str = new String[]{" ...
- java 数组取接近值_java – 获取数组中最接近的数值
我有一个正数/负数int的数组 int[] numbers = new int[10]; numbers[0] = 100; numbers[1] = -34200; numbers[2] = 304 ...
- php中删除数组元素的函数,php删除数组中的元素函数用法汇总
php中删除数组元素是非常的简单的,主要是unset,array_splice,但是关于两者有,长时间混用,有的时候竟然分不出区别. 很多地方都这样区别unset,array_splice array ...
- java 反射创建对象并赋值_java使用反射创建并操作对象的方法
Class 对象可以获得该类里的方法(由 Method 对象表示).构造器(由 Constructor 对象表示).成员变量(由 Field 对象表示),这三个类都位于 java.lang.refle ...
- 如何删除电脑EFI分区|删除电脑中的EFI分区的方法
如何删除电脑EFI分区|删除电脑中的EFI分区的方法 1.按Win+R打开运行,输入:Diskpart,点击确定; 2.在命令提示符中输入:list disk 按回车,选择需要修改的磁盘; 3.这里需 ...
- 计算机 其他 无法删除吗,Ghost win7系统下删除我的电脑中其他多余图标的方法
在ghost win7系统下打开我的电脑时,大家可以看到的一般都是磁盘.可移动存储设备等图片,但是有些用户发现在电脑上面安装了一些软件之后,就会在其他图标中多了很多软件的图标,虽然这样可以方便我们打开 ...
- java 给数组添加删除数_Java实现数组的添加、删除、查找(基础型)
/*delete add find */ public class ArrayTest { /** * @param args */ /*定义数组大小*/ private static int COU ...
- java数组删除元素_java删除数组中的某一个元素的方法
下面小编就为大家带来一篇java删除数组中的某一个元素的方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 实例如下: package org.company.proj ...
最新文章
- Apache2.2安装图解
- BLE控制器之物理层特性
- Vue.js 单元测试
- com.mysql.jdbc.PacketTooBigException: Packet for query is too large
- php考察新人的题目,PHP面试指南2020-sql考察题
- win7系统还原在哪​
- 在matplotlib中关闭绘图轴的方法
- jQuery琐碎笔记
- MLE MAP EM
- 国内最强Web3D软件WebMax正式版发布
- 微信小程序:网课查题微信小程序源码下载,题库资源丰富自动采集,支持语音拍照识别
- 笔记本win10系统部分应用显示模糊的问题——已解决!
- python实现网页微信登陆_(转帖)网站微信登录-python 实现
- MongoDB secondary节点
- 手机在线测试黄疸软件,智能手机APP:可在几分钟内检测出新生儿黄疸
- 本题要求实现一个函数,输出n行空心的数字金字塔。
- urllib中urlparse使用技巧以及iter_content图片边下边存到硬盘使用
- java中上转型概念_Java中上转型和重写有什么区别?
- gr-osmosdr支持GNURadio的扩展
- phpwind携手区域网站深度合作 欲建中小网站电子商务数据平台
热门文章
- mcp证书有什么用_初级会计职称有什么用?考下证书可以做什么工作?
- Vue双向数据绑定 ~ 非常详细哦
- 内置对象 API Math对象、Data对象、Array对象、String对象
- php 钉钉 免登,免登的正确使用方式
- java中的数组增删查改操作,java数组实现增删改查
- 【动态规划刷题笔记】线性dp:合唱队形(最长递增子序列的变体)
- html中怎么让字体闪烁,HTML最简单的文字闪烁代码
- python模块time_python模块之time和datetime
- ztree判断是否是叶子节点
- android c博客园,android上进行c/C 开发测试(转) - 奋进 - 博客园