Java中将数组的length计算放在循环体外面可以提升运行速度

示例代码1:

将length计算放在循环体外面,在leetcode运行时,结果只打败了26%的人。

	public void moveZeroes(int[] nums) {
		int counter = 0;
		for (int i = 0; i < nums.length; i++) {
			if (nums[i] != 0)
				nums[counter++] = nums[i];
		}
		for (int j = counter; j < nums.length; j++) {
			nums[j] = 0;
		}
	}

  示例代码2:

将length计算放在循环体外面,用一个变量size保存数组的length,在leetcode运行时,结果打败了89%的人,可见小小的一个改变,提升很大。

	public void moveZeroes(int[] nums) {
		int size = nums.length;
		int counter = 0;
		for (int i = 0; i < size; i++) {
			System.out.println("i:" + i + ",counter:" + counter);
			if (nums[i] != 0)
				nums[counter++] = nums[i];
		}
		for (int j = counter; j < size; j++) {
			nums[j] = 0;
		}
	}

  

时间: 2024-10-29 04:01:18

Java中将数组的length计算放在循环体外面可以提升运行速度的相关文章

java自学-数组

1.数组是什么 前边说过java的基本数据类型,数组,就是装这些基本类型的容器.每个基本类型的变量都是单个的,数组就是这些单个元素的组合. 2.创建数组 方式一 格式: 数组存储的数据类型[] 数组名字= new 数组存储的数据类型[长度]; 数组定义格式详解: 数组存储的数据类型: 创建的数组容器可以存储什么数据类型. [] : 表示数组. 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组. new:关键字,创建数组使用的关键字. 数组存储的数据类型: 创建的数组容器可以

java中数组有没有length()方法?string没有lenght()方法?

java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int[] arr={1,2,3,4,5}; int length=arr.length;//求数组的长度 ---------------------------------------------------------------------------------------- String 有length()方法,用来求字符串的长度 String  str="Hello"; int leng

java中将一个字符数组赋值给另一个,两者同时变化

java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才能那个让b不跟随a改变?如果b非变不可,我想记录下a没改变之前的值该怎么办?谢谢 如果需要b不变,就必须用for循环,使a数组的每个元素都复制到b的数组里.之所以b会随着a变化,那是因为他们指向了同一个对象.

数组的Length属性用起来比把长度放在一个局部变量高效

在clr via C#一书中看到了下面文字,数组的Length属性,经过了特殊处理,在循环的时候,直接是用该属性比,把长度放在局部标量中高效. 所以,对于程序中的效率问题,很多时候不能只能想当然的以为这样就高效,需要自己去实际的实践,也许结果是自己意想不到的.

java的数组和链表

数组和链表 java的数组是什么:数组是用来存放同一种数据类型的集合, 数组中每个元素都是相通的数据类型,数组就是在内存中划分一串连续的空间(数组作为对象允许使用new关键字进行内存分配),注意只能存放同一种数据类型(Object类型数组除外),数组是一种数据结构 举个栗子:string:就是char类型的数组. 为什么要学数组:因为数组可以存放许多相同的数据类型!!编写程序时省去了很多代码量!! 怎么使用数组: 第一种方式: 数据类型 []  数组名称 = new 数据类型[数组长度]; 这里

将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold", "foreign exchange","fixed income", "futures", "options"}; List<String> assetList = Arrays.asList(asset);

【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)

目录 视频讲解: 一.数组的概述 二.一维数组的使用 三.Arrays工具类中的sort方法(sort方法用的多,我们具体讲一下) 四.数组中的常见异常 五.一维数组练习题 六.彩蛋(本期视频使用的PPT+[练习题(带答案和详解)]) [新手友好型视频]全面讲解Java一维数组(内含带答案和讲解的练习题彩蛋喔)看完即上手!更有详解版练习题来帮你加深印象~~ 视频讲解: 点击这里即可到小乔的B站观看 一.数组的概述 数组(Array),是存储一系列同类型数据元素的一种数据结构.它通过数组名和一个整

Java中数组的特性

转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间.在C,C++等语言中,数组的定义简洁清晰,而在Java中确有一些会让人迷惑的特性.本文就尝试分析这些特性. Java中的数组是对象吗? Java和C++都是面向对象的语言.在使用这些语言的时候,我们可以直接使用标准的类库,也可以使用组合和继承等面向对象的特性

在java 中,数组与 List&lt;T&gt; 类型的相互转换

在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 String[] myStr = {"1","2","4","9","7"}; List<String> listStr = new ArrayList<String>(); Colle