美文网首页
DiffLinkAndArray

DiffLinkAndArray

作者: 勇者与王者 | 来源:发表于2019-09-29 17:23 被阅读0次
package linkedListDemo;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
* 
* @author q06285:
* @version 创建时间:2019年9月29日 上午9:37:05
* 
*/
public class DiffLinkAndArray {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        List<Integer> l ;
        l = new ArrayList<>();
        insertMiddle(l,"ArrayList");
        
        l = new LinkedList<>();
        insertMiddle(l,"LinkedList");
    }
    
    public static void insertMiddle(List<Integer> l, String type) {
        int total = 1000 * 100;
        final int number = 77;
        
        for (int i = 0 ; i< total;i++) {
            l.add(i);
        }
        long start = System.currentTimeMillis();
        
        for ( int i = 0 ; i<total;i++) {
            l.add(l.size()/2, number);
        }
        
        long end = System.currentTimeMillis();
        
        System.out.printf("在 %s 列表中间插入 %d 条数据,耗时 %d 毫秒 %n", type,total,end-start);
        
        
    }
    
    public static void insertLast(List<Integer> l, String type) {
        int total = 1000 * 100;
        final int number = 9;
        
        for (int i = 0 ; i<total ; i++) {
            l.add(i);
        }
        
        long start = System.currentTimeMillis();
        
        for (int i = 0 ; i<total ; i++) {
            l.add(number);
        }
        
        long end = System.currentTimeMillis();
        
        System.out.printf("在 %s 列表末尾新增 %d 个元素,耗时 %d 毫秒 %n", type,total,end-start);
        
        
    }
    
    
    
    
    public static void modify(List<Integer> l ,String type) {
        int total = 1000 * 100;
        int index = total /2 ;
        final int number = 5;
        
        for ( int i = 0 ; i < total ; i++) {
            l.add(number);
        }
        long start = System.currentTimeMillis();
        
        for (int i = 0 ; i < total ; i++) {
            int n = l.get(index);
            n++;
            l.set(index, n);
        }
        long end = System.currentTimeMillis();
        System.out.printf("%s 总长度是 %d,定位到第  %d个数据,取出来,加1,再放回去 %n,重复 %d遍,总共耗时 %d 毫秒 %n ", 
                type,total,index,total, end-start);
        System.out.println();
        
        
    }
    
    
    
    public static void insertFirst(List<Integer> l ,String type) {
        int total = 1000 * 100;
        final int number = 5;
        long start = System.currentTimeMillis();
        for (int i = 0 ; i< total; i++) {
            l.add(0,number);
        }
        long end = System.currentTimeMillis();
        System.out.printf("在%s 最前面插入 %d条数据,总耗时 %d 毫秒 %n",type,total,end-start);
    }

}

相关文章

网友评论

      本文标题:DiffLinkAndArray

      本文链接:https://www.haomeiwen.com/subject/jvfqpctx.html