Arrays,ArrayList,以及ArrayList源码分析

转载自https://blog.csdn.net/Kerrwy/article/details/82421010

ArrayList源码分析(扩容机制jdk8)https://juejin.im/post/5d42ab5e5188255d691bc8d6

1.List与ArrayList
List是接口,ArrayList是用一个数组实现的List类。
一般情况下,建议使用
List list = new ArrayList();实现了泛型,应用更广泛。
2.Arrays与ArrayList
ArrayList是自动扩容的Arrays。有add().remove()这样的方法。

Array 可以容纳基本类型和对象,而 ArrayList 只能容纳对象
ArrayList容量可以动态增长,但牺牲效率;Array([])高效,但是容量固定无法改变。
Java中提供了Arrays类协助这几个操作:sort(),binarySearch(),equals(),fill(),asList().
Java中提供了ArrayList类协助这几个操作:如Index、IndexOf、Contains、Sort、Add、AddRange、Insert、InsertRange。
ArrayList相比于Arrays少了[ ]操作,而是利用get(i)配合索引值将它们取出。

//附加Arrays与ArrayList相互转换的代码
//List -- Arrays
public class Test {  
    public static void main(String[] args) {  
        List<String> list=new ArrayList<String>();  //大小没有定
        list.add("王利虎");  
        list.add("张三");  
        list.add("李四");  
        int size=list.size();  
        String[] array = (String[])list.toArray(new String[size]);  
        for(int i=0;i<array.length;i++){  
            System.out.println(array[i]);  //通过[]索引值
        }  
    }  
}  
//Arrays -- List
import java.util.Arrays;  
import java.util.List;  

public class Test {  
    public static void main(String[] args) {  
        String[] array=new String[3];  //定义时就定了大小
        array[0]="王利虎";  
        array[1]="张三";  
        array[2]="李四";  
        List<String> list=Arrays.asList(array);  
        for(int i=0;i<list.size();i++){  
            System.out.println(list.get(i));  //通过get方法来索引值
        }            
    }  
}  
原文地址:https://www.cnblogs.com/doyi111/p/11678671.html