From 593fae50155d969c10ca9add3344c9f2cf6e33de Mon Sep 17 00:00:00 2001 From: Shengyu Yao Date: Tue, 10 Oct 2017 17:45:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Java=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=9D=97=E9=AB=98=E4=BA=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 其实Markdown是支持不同语言的高亮的,看起来会比纯黑色舒服一点。 --- ...346\272\220\347\240\201\345\211\226\346\236\220.md" | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git "a/Part2/JavaSE/ArrayList\346\272\220\347\240\201\345\211\226\346\236\220.md" "b/Part2/JavaSE/ArrayList\346\272\220\347\240\201\345\211\226\346\236\220.md" index 3689eab..87ee91d 100644 --- "a/Part2/JavaSE/ArrayList\346\272\220\347\240\201\345\211\226\346\236\220.md" +++ "b/Part2/JavaSE/ArrayList\346\272\220\347\240\201\345\211\226\346\236\220.md" @@ -10,7 +10,7 @@ ArrayList源码剖析 ArrayList的源码如下(加入了比较详细的注释): -``` +```java package java.util; public class ArrayList extends AbstractList @@ -390,7 +390,7 @@ public class ArrayList extends AbstractList 首先来看Arrays.copyof()方法。它有很多个重载的方法,但实现思路都是一样的,我们来看泛型版本的源码: -``` +```java public static T[] copyOf(T[] original, int newLength) { return (T[]) copyOf(original, newLength, original.getClass()); } @@ -398,7 +398,7 @@ public static T[] copyOf(T[] original, int newLength) { 很明显调用了另一个copyof方法,该方法有三个参数,最后一个参数指明要转换的数据的类型,其源码如下: -``` +```java public static T[] copyOf(U[] original, int newLength, Class newType) { T[] copy = ((Object)newType == (Object)Object[].class) ? (T[]) new Object[newLength] @@ -418,7 +418,7 @@ public static T[] copyOf(U[] original, int newLength, Class 第二个, T[] toArray(T[] a)方法。该方法可以直接将ArrayList转换得到的Array进行整体向下转型(转型其实是在该方法的源码中实现的),且从该方法的源码中可以看出,参数a的大小不足时,内部会调用Arrays.copyOf方法,该方法内部创建一个新的数组返回,因此对该方法的常用形式如下: -``` +```java public static Integer[] vectorToArray2(ArrayList v) { Integer[] newText = (Integer[])v.toArray(new Integer[0]); return newText; @@ -428,4 +428,4 @@ public static Integer[] vectorToArray2(ArrayList v) { 5.ArrayList基于数组实现,可以通过下标索引直接查找到指定位置的元素,因此查找效率高,但每次插入或删除元素,就要大量地移动元素,插入删除元素的效率低。 -6.在查找给定元素索引值等的方法中,源码都将该元素的值分为null和不为null两种情况处理,ArrayList中允许元素为null。 \ No newline at end of file +6.在查找给定元素索引值等的方法中,源码都将该元素的值分为null和不为null两种情况处理,ArrayList中允许元素为null。