文档章节

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

傲娇字符
 傲娇字符
发布于 05/04 10:21
字数 325
阅读 45
收藏 3
点赞 0
评论 0

直接上代码和结论:

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

 

 

© 著作权归作者所有

共有 人打赏支持
傲娇字符
粉丝 4
博文 36
码字总数 13903
作品 0
武汉
架构师
全面的java编程新手入门学习笔记总结

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

Java小辰 ⋅ 05/10 ⋅ 0

JNI开发流程与引用数据类型的处理

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

juexingzhe ⋅ 05/04 ⋅ 0

【JavaSE(二)】Java语法基础(下)

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

苍云横渡 ⋅ 05/09 ⋅ 0

随机模拟 java 数据插件 - Jmockdata

Jmockdata ![License](http://www.apache.o

寻觅一只耳朵 ⋅ 2017/01/05 ⋅ 20

Scala笔记整理(二):Scala数据结构—数组、map与tuple

[TOC] 数组 定长数组 如果你需要一个长度不变的数组,可以用Scala中的Array。例如: 在JVM中,Scala的Array以Java数组方式实现。示例中的数组在JVM中的类型为java.lang.String[]。Int、Doubl...

xpleaf ⋅ 04/18 ⋅ 0

golang自定义路由控制实现(一)

    由于本人之前一直是Java Coder,在Java web开发中其实大家都很依赖框架,所以当在学习Golang的时候,自己便想着在Go开发中脱离框架,自己动手造框架来练习。通过学习借鉴Java的思想还...

1Day ⋅ 05/11 ⋅ 0

Android JNI学习(四)——JNI的常用方法的中文API

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头 ⋅ 05/09 ⋅ 0

OpenJ9 和 HotSpot 的对比 Part 2

简介 昨天我从内存和速度这两个维度比较了不同的 JDK 版本以及 OpenJ9 vs HotSpot。如果你问我,一个实际工作的服务于 REST 对象的 Spring Boot 应用程序,所测试的内存部分是真实的。 速度/...

oschina ⋅ 05/28 ⋅ 0

Java编程新手基础知识学习性能优化,这些技巧你知道吗?

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

Java小辰 ⋅ 05/16 ⋅ 0

php 二位数组按某个键值排序

其中 array_column(数组,数组中的某个键值) 从多维数组中取出某个键值的一列 返回一个一维数组; arraymultisort(数组(一维数组),排序方式(SOTRASC,SOTR_DESC),其他数组(可以是二维的))...

黄灿锋 ⋅ 03/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

在java中读取文件(也支持读取jar中的文件)

getClass().getResourceAsStream("文件名.格式"); 这个方法是用于获取当前类所在目录下的文件;需要将文件放到和当前类同一个包下面 比如我有个类在 com.test这个包下, 要读取一个test.jpg的图...

太黑_thj ⋅ 41分钟前 ⋅ 0

CentOS 7 源码编译安装 MySQL 5.7记录

没事瞎折腾,本来可以yum安装,却偏偏去要编译源码。 1. 安装依赖包 1). 安装cmake等依赖 # yum install cmake ncurses ncurses-devel bison bison-devel 2). 安装boost 1.59.0 # wget htt...

admin_qing ⋅ 44分钟前 ⋅ 0

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 今天 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 今天 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部