Java集合——(二)

比较数组列表类在未指定容量和指定容量时以及链表类插入相同多的数据所需的时间

package study;

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

public class Lianxi1 {
    public static void main(String[] args) {
        int x = 1000000;
        Long start = System.currentTimeMillis();
        //数组列表类未指定容量,由系统自己扩容
        ArrayList<Integer> arraylist = new ArrayList<Integer>();
        for(int i = 0;i < x;i++) {
            arraylist.add(i);
        }
        Long end1 = System.currentTimeMillis();
        System.out.println("arraylist未指定容量"+"的时间:"+(end1-start));

        //数组列表类指定容量,不需要系统自己扩容
        ArrayList<Integer> arraylist1 = new ArrayList<Integer>(x);
        for(int i = 0;i < x;i++) {
            arraylist1.add(i);
        }
        Long end2 = System.currentTimeMillis();
        System.out.println("arraylist1"+"的时间:"+(end2-end1));

        //链表类
        LinkedList<Integer> linkedlist = new LinkedList<Integer>();
        for(int i = 0;i < x;i++) {
            linkedlist.add(i);
        }
        Long end3 = System.currentTimeMillis();
        System.out.println("linkedlist"+"的时间:"+(end3-end2));
        }
}
arraylist未指定容量的时间:140
arraylist1的时间:40
linkedlist的时间:220

随着数据的不断增大,最快的时LinkedList,下来是指定容量时的ArrayList,最后是未指定容量时的ArrayList,

定义两个数组链表类集合list1、list2:

  • 将list1里没有而list2里有的加入到list1
  • 将list1、list2里都有的加入到临时集合tmp
  • 在list2里除去集合tmp里含有的元素
package study;

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

public class Lianxi1 {
ArrayList<Integer> list1 = new ArrayList<Integer>();
        ArrayList<Integer> list2 = new ArrayList<Integer>();
        ArrayList<Integer> tmp = new ArrayList<Integer>();//临时集合tmp
        for(int i = 0;i < 5;i++) {
            list1.add(i+2);
            list2.add(i+3);
        }
        System.out.println("list1:"+list1);
        System.out.println("list2:"+list2);

        for(int i = 0;i < list2.size();i++) {
            //将list1里没有而list2里有的加入到list1
            if(!list1.contains(list2.get(i))) {//这句代码的意思是集合list2里有而集合list1没有的意思
                list1.add(list2.get(i));
            }else {//将list1、list2里都有的加入到临时集合tmp
                tmp.add(list2.get(i));
            }
        }
        //在list2里除去集合tmp里含有的元素
        list2.removeAll(tmp);
        System.out.println("将list1里没有而list2里有的加入到list1后list1:"+list1);
        System.out.println("将list1、list2里都有的加入到临时集合tmp:"+tmp);
        System.out.println("在list2里除去集合tmp里含有的元素后list2:"+list2);


      }
}
list1:[2, 3, 4, 5, 6]
list2:[3, 4, 5, 6, 7]list1里没有而list2里有的加入到list1list1:[2, 3, 4, 5, 6, 7]list1list2里都有的加入到临时集合tmp:[3, 4, 5, 6]list2里除去集合tmp里含有的元素后list2:[7]

猜你喜欢

转载自blog.csdn.net/qq2899349953/article/details/80720544