java ArrayList

it2024-04-17  46

一、ArrayList与数组的区别

数组长度不可变 ArrayLisyt可以 打印ArrayList得到的不是地址而是内容 若内容为空 打印的是一对中括号[]

//从jdk9.0开始右侧尖括号里面的内容可以不用写但是尖括号仍然要写 ArrayList<String> list=new ArrayList<>(); //创建一个集合对象list System.out.println(list);//[]

ArrayList有一个尖括号代表泛型 即集合中所有元素类型要一致 泛型只能是引用类型 不能是基本类型 因为ArrayList集合里面保存的都是地址值 而基本类型没有地址值 因此不能在泛型中放基本类型,若想放基本类型到泛型中 必须使用基本类型对应的**“包装类”包装类是引用类型,都在java.lang包下因此不用import导包**

对应关系 基本类首字母大写->包装类 如byte->Byte 特例 int->Integer char->Character JDK 1.5开始二者支持自动装箱和开箱(仍然使用int接收n)

ArrayList<Integer> intList=new ArrayList<>(); intList.add(1); intList.add(2); int n= intList.get(1);

二、常用方法

public boolean add(E e) 末尾追加 public E get(int index) 获取元素 public E set(int index, E element) 返回的是index处的旧值

public E remove(int index) 删除元素 返回的是index处的旧值 public boolean remove(Object o) 删除值对象 其实和通过下标删除很相似,只是多了一个步骤,遍历底层数组elementData,通过equals()方法或 == (特殊情况下)来找到要删除的元素,获取其下标,调用remove(int index)

clear():集合清空,通过遍历底层数组elementData,设置为null size() : 获取集合长度,通过定义在ArrayList中的私有变量size得到 isEmpty():是否为空,通过定义在ArrayList中的私有变量size得到 contains(Object o):是否包含某个元素,通过遍历底层数组elementData,通过equals或==进行判断

最新回复(0)