坑【4】数组和List性能比较

来源:互联网 发布:mysql数据库自动备份 编辑:程序博客网 时间:2024/05/20 17:27
public class Test {    private static int count = 200000000;    public static void main(String[] args){        int[] datas = new int[count];//        List<Integer> datasList = new ArrayList<>(count);        Integer[] datas2 = new Integer[count];        for(int i=0;i<count;i++){            datas[i] = 0;//            datasList.add(0);            datas2[i] = 0;        }        Long start = System.currentTimeMillis();        sum(datas);        Long start1 = System.currentTimeMillis();//        sum(datasList);//        Long start2 = System.currentTimeMillis();        sum(datas2);        Long start3 = System.currentTimeMillis();        System.out.println(start1-start);//        System.out.println(start2-start1);        System.out.println(start3-start1);    }    // 对数组求和    public static int sum(int[] datas) {        int sum = 0;        for (int i = 0; i < datas.length; i++) {            sum += datas[i]; // 1        }        return sum;    }    // 对列表求和    public static int sum(List<Integer> datas) {        int sum = 0;        for (int i = 0; i < datas.size(); i++) {            sum += datas.get(i); // 2        }        return sum;    }    // 对数组求和    public static int sum(Integer[] datas) {        int sum = 0;        for (int i = 0; i < datas.length; i++) {            sum += datas[i]; // 1        }        return sum;    }}/** *   int 数组和Integer数组,在2亿数字下, jdk1.8都在100毫秒以下 *   但是intList2亿数字下,jdk1.8也只是相差几十毫秒,性能问题几乎可以忽略不及 *   之前看过博客说intList的性能差别较大,是因为int --> Integer 装箱操作  和Integer --> int的拆箱操作比较浪费时间,亲测在1.8下,如上,性能问题可以忽略 */
0 0
原创粉丝点击