Java 二维维数组遍历测试
来源:互联网 发布:怎么装linux系统 编辑:程序博客网 时间:2024/05/18 20:08
二维数组是一个数组的引用,其每一个元素都是另一个int数组的引用。一个二维数组看起来就像一个X-Y坐标系的矩阵。也可以称为矩阵。
由于二维数组分散在存储器中,所以对性能有一些影响。测试程序:
packagearrayTraverse;/** * 二维数组的问题 * * 我们在初始化一个任意大小的2维数组。(为简化分析我们使用二维方阵)我们将用两种不同方式迭代同一个数组,分析结果 * 两种迭代方式的性能差距很大 * @author mohit * */publicclass TheProblemOf2DArray { //数组大小:数组越大,性能差距越明显 privatestatic final int ARR_SIZE=9999; publicstatic void main(String[] args) { //新数组 intarr[][]=newint[ARR_SIZE][ARR_SIZE]; longcurrTime=System.currentTimeMillis(); colMajor(arr); System.out.println("Total time in colMajor : "+(System.currentTimeMillis()-currTime)+" ms"); //新数组,与arr完全相同 intarr1[][]=newint[ARR_SIZE][ARR_SIZE]; currTime=System.currentTimeMillis(); rowMajor(arr1);// this is the only difference in above System.out.println("Total time in col : "+(System.currentTimeMillis()-currTime) +" ms"); } /** * 下面的代码按列为主遍历数组 * 即在扫描下一行之前先扫描完本行 * */ privatestatic void colMajor(intarr[][]) { for(inti=0;i<ARR_SIZE;i++){ for(intj=0;j<ARR_SIZE;j++){ //See this, we are traversing j first and then i arr[i][j]=i+j; } } } /** * 如果我们转换内外循环 * 程序就以行为主顺序遍历数组 * 即在扫描下一列之前先扫描完本列 * 这意味着我们访问数组时每次都在访问不同的行(因此也在访问不同的页) * 代码微小的改变将导致这个程序花费更多的时间完成遍历 */ privatestatic void rowMajor(intarr[][]) { for(inti=0;i<ARR_SIZE;i++){ for(intj=0;j<ARR_SIZE;j++){ /*看这个,我们先遍历j,然后遍历i,但是对于访问元素来说 * 它们在更远的位置,所以需要花费的更多 */ arr[j][i]=i+j; } } }}
0 0
- Java 二维维数组遍历测试
- java二维数组遍历
- java二维数组遍历
- Java遍历二维数组,求和
- java--二维数组的遍历
- java 一维数组与二维数组的遍历
- java-一维二维数组的定义、使用二维数组、遍历数组
- java二维数组简单遍历方式
- java中的遍历及二维数组
- java实现二维数组按列遍历
- 一维指针遍历二维数组
- Smarty遍历数组 (一维、二维)
- 遍历一维、二维、三维数组
- 一维二维数组的遍历
- 二维数组螺旋遍历
- 二维数组遍历
- 二维数组 蛇形遍历
- foreach 遍历二维数组
- Unity3D手游开发日记(5) - 适合移动平台的植被随风摆动
- JQuery选择器中层级关系老是记不清楚怎么办,总结下看看。
- 以图搜图 相似图片搜索的原理(二)
- 初识Hadoop
- 正则表达式
- Java 二维维数组遍历测试
- MYSQL 5.7.11 服务无法启动解决方法
- HTML表单、HTTP Get与Post杂谈
- java中,下面的List怎么放入map里面,求高手!
- Scala之偏函数Partial Function
- Gradle在大型Java项目上的应用
- springmvc 异常org.springframework.web.servlet.DispatcherServlet noHandlerFound
- Android DVM
- mybatis配置中sql莫名其妙报错,多半是条件中小于符号捣的鬼