文档章节

JAVA里面一维数组和二维数组哪个速度更快?

傲娇字符
 傲娇字符
发布于 05/04 10:21
字数 325
阅读 60
收藏 3

直接上代码和结论:

package com.chz.apps.data.test;

import org.junit.Test;

public class DemoTest {

    @Test
    public void stringArrayTest(){
        //准备数据
        String[] bmp1 = new String[4800];
        for (int i = 0 ; i < 4800 ; i++) {
            bmp1[i] = i+"";
        }


        String[][] bmp2 = new String[80][60];
        for (int i = 0 ; i < 80 ; i++) {
            for (int j = 0 ; j < 60 ; j++) {
                bmp2[i][j] = i+"-"+j;
            }
        }

        //第一个测试
        Long start = System.nanoTime();
        for (int y = 0;y<60;y++){
            String res = bmp1[40 + 80*y];
        }
        System.out.println("字符串数组-本次耗时1:"+(System.nanoTime() - start));

        //第二个测试
        start = System.nanoTime();

        for(int y = 0;y<60;y++){
            String res = bmp2[40][y];
        }

        System.out.println("字符串数组-本次耗时2:"+(System.nanoTime() - start));
    }


    @Test
    public void intArrayTest(){
        //准备数据
        int[] bmp1 = new int[4800];
        for (int i = 0 ; i < 4800 ; i++) {
            bmp1[i] = i;
        }


        int[][] bmp2 = new int[80][60];
        for (int i = 0 ; i < 80 ; i++) {
            for (int j = 0 ; j < 60 ; j++) {
                bmp2[i][j] = i+j;
            }
        }

        //第一个测试
        Long start = System.nanoTime();
        for (int y = 0;y<60;y++){
            int res = bmp1[40 + 80*y];
        }
        System.out.println("原始数据类型-本次耗时1:"+(System.nanoTime() - start));

        //第二个测试
        start = System.nanoTime();

        for(int y = 0;y<60;y++){
            int res = bmp2[40][y];
        }

        System.out.println("原始数据类型-本次耗时2:"+(System.nanoTime() - start));
    }

}

用例1的测试结果:

字符串数组-本次耗时1:18972
字符串数组-本次耗时2:5909

 

用例2的测试结果:

原始数据类型-本次耗时1:34523
原始数据类型-本次耗时2:3110

 

 

© 著作权归作者所有

共有 人打赏支持
傲娇字符
粉丝 5
博文 38
码字总数 14769
作品 0
武汉
架构师
《Java从小白到大牛》之第8章 数组

在计算机语言中数组是非常重要的集合类型,大部分计算机语言中数组具有如下三个基本特性: 一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。 有序性:数组中...

tony关东升
07/05
0
0
全面的java编程新手入门学习笔记总结

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰
05/10
0
0
【翻译】JAVA堆和原生内存谁更快?

这是我的第一篇翻译的比较完整的博文,若有错处请指出。这篇文章从两个测试去比较了JAVA堆和原生内存的读写操作。 译文出处:http://lipspace.duapp.com 原文出处:http://mentablog.solive...

陈昊Sevens
2014/04/03
0
0
JNI开发流程与引用数据类型的处理

今天我们来看下Java JNI,先看下维基百科给的定义, JNI, Java Native Interface, Java本地接口,是一种编程框架,使得Java虚拟机中的Java程序可以调用本地应用或库,也可以被其他程序调用。...

juexingzhe
05/04
0
0
【JavaSE(二)】Java语法基础(下)

原文地址:https://www.cloudcrossing.xyz/post/34/ 1 方法 1.1 方法的概述 方法,简单的说就是完成特定功能的代码块(注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法)。 ...

苍云横渡
05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windows nvm 安装 node

nvm 是 node 的版本控制管理 下面是下载 nvm 的地址,选择 nvm-setup.zip 下载 https://github.com/coreybutler/nvm-windows/releases 就是下一步下一步,一键安装 基本命令有: nvm arch [32...

U_I_A_N
9分钟前
0
0
函数式组件完整例子

之前创建的组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法。它只是一个接收参数的函数。 在下面这个例子中,我们标记组件为 functional,这意味它是无状态 (没有响...

tianyawhl
24分钟前
0
0
linux shell大文件操作

查找字符串所在行 : grep -n “待查找字符串” “文件名” 显示指定行信息:sed -n 1p “指定文件” 表示显示指定文件第一行的信息 ----------------------------------------------------...

悲催的古灵武士
24分钟前
0
0
centos7安装nexus3

centos7安装nexus3 2018年05月24日 16:20:34 阅读数:257 1、下载nexus wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.12.0-01-unix.tar.......

linjin200
26分钟前
1
0
springboot整合cxf发布webservice以及调用

webservice性能不高,但是现在好多公司还是在用,恰好今天在开发的时候对接项目组需要使用到webservice下面来说下简单的案例应用 首先老规矩:引入jar包 <dependency><groupId>org.apach...

落叶清风
30分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部