import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Random; import java.util.List; import java.util.ArrayList; import java.util.LinkedList; import java.util.Date; public class TestList { public static void main(String[] args) { List<Integer> arrayList = new ArrayList<Integer>(); List<Integer> linkList = new LinkedList<Integer>(); insertTest(linkList);// 2 ms insertTest(arrayList);// 977 ms getTest(linkList);// 2475 ms getTest(arrayList);// 3 ms } public static void insertTest(List<Integer> list) { for (int i = 0; i < 5000; i++) {// 创建数据表 for (int j = 1; j < 1000; j++) { list.add(i + j); } } Long begin = new Date().getTime(); for (int i = 3; i < 1000; i += 3) {// 插入数据 list.add(i, i); } Long end = new Date().getTime(); System.out.println("cost : " + (end - begin) + " ms"); System.out.println("number:" + list.size()); } public static void getTest(List<Integer> list) { for (int i = 0; i < 5000; i++) {// 创建数据 for (int j = 1; j < 1000; j++) { list.add(j); } } Long begin = new Date().getTime(); for (int i = 3; i < 50000; i++) {// 插入数据 list.get(i); } Long end = new Date().getTime(); System.out.println("cost : " + (end - begin) + " ms"); System.out.println("number:" + list.size()); } /** * 总结: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 * 2.对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。 * 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据 **/ }
--希望是生命的瑰丽朝霞,我们应当在希望中生活,并在希望中奋进,去开拓我们的人生之路。