数组和ArrayList的区别及ArrayList的常用API的用法

1.数组

数组在内存中是连续存储的,优点是它的索引速度非常快,而且赋值与修改元素较快,不足是在数组中插入数据比较麻烦,同时声明数组时应知名数组的长度,若数组长度过长会造成内存浪费,数组长度过短,会造成数据溢出的错误。

1.1 实例:

string[] s=new string[2];
//赋值
 s[0]="a"; s[1]="c"; 
//修改
 s[1]="b";

2.ArrayList

ArrayList 是一个数组队列,相当于动态数组,在声明ArrayList对象时并不需要指定它的长度。与Java中的数组相比,它的容量能动态增长。它继承AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。

2.1 ArrayList常用API的用法实例:

package hashmap;
import java.util.*;
//ArrayList中常用的API用法
public class ArrayListTest {
	public static void main(String[] args) {
		//创建ArrayList
		ArrayList list = new ArrayList();
		//添加元素
		list.add(1);
		list.add("a");
		list.add("b");
		list.add("v");
		list.add("d");
		//在指定位置添加元素
		list.add(0, 5);
		
		System.out.println("the first element is:" + list.get(0));
		//删除3
		list.remove("v");
		//获取ArrayList的大小
		System.out.println("size=: " +list.size());
		//判断list中是否包含3
		System.out.println("ArrayList contains 3  is : "+list.contains(3));
		//设置第二个元素为10
		list.set(1,"10");
		
		//通过Iterator遍历
		for(Iterator iter = list.iterator(); iter.hasNext(); ) {
			System.out.println("next is:" + iter.next());
		}		
		//清空ArrayList
		list.clear();
		//判断ArrayList是否为空
		System.out.println("ArrayList is empty: " + list.isEmpty());
	}
}

2.2 运行结果

数组和ArrayList的区别及ArrayList的常用API的用法_第1张图片

2.3 拆箱与装箱

在ArrayList中我们可以插入不同类型的数组,如字符串或者数字,因为其会把所有插入的数据当做object类型来处理。然而在插入和使用数据的时候,就存在装箱与拆箱的操作,这回带来很大的性能损耗。
所谓装箱就是指:就是将值(或其他)类型的数据打包到引用类型的实例中,如下所示:

int i = 1;
object j = (object)i;

拆箱就是指:就是从引用数据中提取值(或其他)类型,如下所示:

object j = 1;
int i = (int)j;

在声明ArrayList时,我们也可以指定存入数据的类型

ArrayList<String> list2 = new ArrayList<>();//只能添加字符串

你可能感兴趣的:(Java)