ArrayList与数组
最近学习java的时候遇到ArrayList和数组相互转换的问题,在这里坐下笔记方便自己之后查看。
ArrayList与数组的区别
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList继承了AbstractList,并实现List接口。
数组是相同数据类型的多个数据的容器。这些元素按线性顺序排序,所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素。
数组在初始化确定长度后,长度不会再发生变化。
ArrayList
ArrayList初始化
import java.util.ArrayList;//引入ArrayList类
ArrayList<E> objectName = new ArrayList<>();//ArrayList的初始化
- E:泛型数据类型
- objectName:对象名
ArrayList遍历方式
迭代器遍历
Iterator<Integer> it = arrayList.iterator();
while(it.hasNext()){
System.out.println(it.next()+" ");
}
索引值遍历
for(int i = 0; i < arrayList.size(); i++){
System.out.println(arrayList.get(i)+" ");
for循环遍历
for(Integer num: arrayList){
System.out.println(num+" ");
ArrayList类的常用方法
add()方法
str.add("Hello");
str.add("world");
结果为:
get()方法
str.get(1);
结果为:
set()方法
str.set(0, "world");//第一个参数为索引位置,第二个为要修改的值
结果为:
remove()方法
str.remove(0);//删除第一个元素
结果为:
size()方法
import java.util.ArrayList;
public class ArrList {
public static void main(String[] args){
ArrayList<String> str = new ArrayList<>();
str.add("Hello");
str.add("Hi");
str.add("world");
System.out.println(str.size());
结果为:
数组
数组的初始化
int[] arr = new int[3];
int[] arr = {1, 2, 3, 4};
int[] arr;//只创建数组引用名,未在内存创建数组空间
int[] arr = new int[]{1, 2, 3, 4};
遍历数组
示例:
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
或者:
for(int element: arr){
System.out.println(element);
ArrayList与数组相互转换
ArrayList转换为数组
ArrayList提供public T[] toArray(T[] a)
List<String> list=new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
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]);
为什么要用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢?
List接口有多个实现类,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类,如
LinkedList或者Vector等等,这时你只要改变这一行就行了: List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。 假设你开始用ArrayList alist = new ArrayList(), 这下你有的改了,特别是如果你使用了ArrayList实现类特有的方法。
和属性。
数组转换为ArrayList
String[] array=new String[3];
array[0]="a";
array[1]="b";
array[2]="c";
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(array));
for(int i=0;i<arrayList.size();i++){
System.out.println(arrayList.get(i));