十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
ArrayList与LinkedList都是继承至Collection对象,内部实现导致性能方面存在一定的区别
10年积累的成都做网站、网站建设、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有莲池免费网站建设让你可以放心的选择与我们合作。
插入性能对比
private final static int COUNT = 10000000; private static long insertObject(List list) { Object obj = new Object(); long startTime = System.currentTimeMillis(); for (int i = 0; i < COUNT; i++) { list.add(obj); } long endTime = System.currentTimeMillis(); return endTime - startTime; } public static void main(String[] args) { int initCount = (int) (COUNT * 1.5); System.out.println("ArrayList 增加" + COUNT + "条数据,耗时:" + insertObject(new ArrayList(initCount))); System.out.println("LinkedList 增加" + COUNT + "条数据,耗时:" + insertObject(new LinkedList())); }上述代码得出下列结果:查询性能对比 private final static int COUNT = 1000000; private static Map insertObject(List list) { User user = new User(); long startTime = System.currentTimeMillis(); for (int i = 0; i < COUNT; i++) { user.setId(i); user.setName("i:" + i); user.setAge(i); list.add(user); } long endTime = System.currentTimeMillis(); Map result = new HashMap(); result.put("time", endTime - startTime); result.put("list", list); return result; } private static long readObject(List list) { long startTime = System.currentTimeMillis(); for (User user : list) { } long endTime = System.currentTimeMillis(); return endTime - startTime; } public static void main(String[] args) { // 插入 int initCount = (int) (COUNT * 1.5); Map arrayListResult = insertObject(new ArrayList()); Map linkedListResult = insertObject(new LinkedList()); System.out.println("ArrayList 增加" + COUNT + "条数据,耗时:" + arrayListResult.get("time")); System.out.println("LinkedList 增加" + COUNT + "条数据,耗时:" + linkedListResult.get("time")); // 读取 System.out.println("ArrayList 查询" + COUNT + "条数据,耗时:" + readObject((List) arrayListResult.get("list"))); System.out.println("LinkedList 查询" + COUNT + "条数据,耗时:" + readObject((List) linkedListResult.get("list"))); }结果如下所示:3.LinkedList的优势 static final int N = 500000; static long timeList(List list) { long start = System.currentTimeMillis(); Object o = new Object(); for (int i = 0; i < N; i++) { list.add(0, o); } long endTime = System.currentTimeMillis(); return endTime - start; } static long readList(List list) { long start = System.currentTimeMillis(); for (int i = 0, j = list.size(); i < j; i++) { } return System.currentTimeMillis() - start; } static List addList(List list) { Object o = new Object(); for (int i = 0; i < N; i++) { list.add(0, o); } return list; } public static void main(String[] args) { System.out.println("ArrayList添加" + N + "条耗时:" + timeList(new ArrayList())); System.out.println("LinkedList添加" + N + "条耗时:" + timeList(new LinkedList())); List list1 = addList(new ArrayList<>()); List list2 = addList(new LinkedList<>()); System.out.println("ArrayList查找" + N + "条耗时:" + readList(list1)); System.out.println("LinkedList查找" + N + "条耗时:" + readList(list2)); } 结果:LinkedList的优势在于头部插入,而不是随机插入,在使用过程中需要根据自己的需求进行选择!!! 当前题目:ArrayList与LinkedList的性能对比 网页URL:http://www.zsjierui.cn/article/jddioc.html 其他资讯 关于对sap系统的使用建议的信息 java学生信息代码 java显示学生信息 网线可以直接连路由器 网线能直接连无线路由器吗 c语言兑换50元函数 c语言兑换零钱 包含sap会计系统软件的词条
上述代码得出下列结果:
private final static int COUNT = 1000000; private static Map insertObject(List list) { User user = new User(); long startTime = System.currentTimeMillis(); for (int i = 0; i < COUNT; i++) { user.setId(i); user.setName("i:" + i); user.setAge(i); list.add(user); } long endTime = System.currentTimeMillis(); Map result = new HashMap(); result.put("time", endTime - startTime); result.put("list", list); return result; } private static long readObject(List list) { long startTime = System.currentTimeMillis(); for (User user : list) { } long endTime = System.currentTimeMillis(); return endTime - startTime; } public static void main(String[] args) { // 插入 int initCount = (int) (COUNT * 1.5); Map arrayListResult = insertObject(new ArrayList()); Map linkedListResult = insertObject(new LinkedList()); System.out.println("ArrayList 增加" + COUNT + "条数据,耗时:" + arrayListResult.get("time")); System.out.println("LinkedList 增加" + COUNT + "条数据,耗时:" + linkedListResult.get("time")); // 读取 System.out.println("ArrayList 查询" + COUNT + "条数据,耗时:" + readObject((List) arrayListResult.get("list"))); System.out.println("LinkedList 查询" + COUNT + "条数据,耗时:" + readObject((List) linkedListResult.get("list"))); }结果如下所示:3.LinkedList的优势 static final int N = 500000; static long timeList(List list) { long start = System.currentTimeMillis(); Object o = new Object(); for (int i = 0; i < N; i++) { list.add(0, o); } long endTime = System.currentTimeMillis(); return endTime - start; } static long readList(List list) { long start = System.currentTimeMillis(); for (int i = 0, j = list.size(); i < j; i++) { } return System.currentTimeMillis() - start; } static List addList(List list) { Object o = new Object(); for (int i = 0; i < N; i++) { list.add(0, o); } return list; } public static void main(String[] args) { System.out.println("ArrayList添加" + N + "条耗时:" + timeList(new ArrayList())); System.out.println("LinkedList添加" + N + "条耗时:" + timeList(new LinkedList())); List list1 = addList(new ArrayList<>()); List list2 = addList(new LinkedList<>()); System.out.println("ArrayList查找" + N + "条耗时:" + readList(list1)); System.out.println("LinkedList查找" + N + "条耗时:" + readList(list2)); } 结果:LinkedList的优势在于头部插入,而不是随机插入,在使用过程中需要根据自己的需求进行选择!!! 当前题目:ArrayList与LinkedList的性能对比 网页URL:http://www.zsjierui.cn/article/jddioc.html 其他资讯 关于对sap系统的使用建议的信息 java学生信息代码 java显示学生信息 网线可以直接连路由器 网线能直接连无线路由器吗 c语言兑换50元函数 c语言兑换零钱 包含sap会计系统软件的词条
结果如下所示:
3.LinkedList的优势
static final int N = 500000; static long timeList(List list) { long start = System.currentTimeMillis(); Object o = new Object(); for (int i = 0; i < N; i++) { list.add(0, o); } long endTime = System.currentTimeMillis(); return endTime - start; } static long readList(List list) { long start = System.currentTimeMillis(); for (int i = 0, j = list.size(); i < j; i++) { } return System.currentTimeMillis() - start; } static List addList(List list) { Object o = new Object(); for (int i = 0; i < N; i++) { list.add(0, o); } return list; } public static void main(String[] args) { System.out.println("ArrayList添加" + N + "条耗时:" + timeList(new ArrayList())); System.out.println("LinkedList添加" + N + "条耗时:" + timeList(new LinkedList())); List list1 = addList(new ArrayList<>()); List list2 = addList(new LinkedList<>()); System.out.println("ArrayList查找" + N + "条耗时:" + readList(list1)); System.out.println("LinkedList查找" + N + "条耗时:" + readList(list2)); } 结果:LinkedList的优势在于头部插入,而不是随机插入,在使用过程中需要根据自己的需求进行选择!!! 当前题目:ArrayList与LinkedList的性能对比 网页URL:http://www.zsjierui.cn/article/jddioc.html 其他资讯 关于对sap系统的使用建议的信息 java学生信息代码 java显示学生信息 网线可以直接连路由器 网线能直接连无线路由器吗 c语言兑换50元函数 c语言兑换零钱 包含sap会计系统软件的词条
结果:
LinkedList的优势在于头部插入,而不是随机插入,在使用过程中需要根据自己的需求进行选择!!!