ArrayList用法
List 接口
List接口继承了Collection接口,称为有序集合,可以精确控制列表中每个元素的
入位置。通过整数索引获取列表中的元素。List允许出现重复的值。实现List接口的常类有ArrayList和LinkedList。它们都可以容纳所有类型的对象,包括null。允许重复,并可保证元素的存储顺序。
ArrayList构造方法
1.public arraylist() [构造一个容量为十的空列表]
2.public ArrayList(Collection<? extends E> c)
构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。
参数
c - 要将元素放入此列表的集合
异常 :
NullPointerException - 如果指定的集合为空
创建一个集合list
public boolean add(E e)
修饰语和类型 方法以及说明
-
-
Modifier and Type Method and Description boolean
add(E e)
将指定的元素追加到此列表的末尾(可选操作)。
void
add(int index, E element)
将指定的元素插入此列表中的指定位置(可选操作)。
boolean
addAll(Collection<? extends E> c)
按指定集合的迭代器(可选操作)返回的顺序将指定集合中的所有元素附加到此列表的末尾。
boolean
addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。
void
clear()
从此列表中删除所有元素(可选操作)。
boolean
contains(Object o)
如果此列表包含指定的元素,则返回 true 。
boolean
containsAll(Collection<?> c)
如果此列表包含指定 集合的所有元素,则返回true。
boolean
equals(Object o)
将指定的对象与此列表进行比较以获得相等性。
E
get(int index)
返回此列表中指定位置的元素。
int
hashCode()
返回此列表的哈希码值。
int
indexOf(Object o)
返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
boolean
isEmpty()
如果此列表不包含元素,则返回 true 。
Iterator<E>
iterator()
以正确的顺序返回该列表中的元素的迭代器。
int
lastIndexOf(Object o)
返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
ListIterator<E>
listIterator()
返回列表中的列表迭代器(按适当的顺序)。
ListIterator<E>
listIterator(int index)
从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。
E
remove(int index)
删除该列表中指定位置的元素(可选操作)。
boolean
remove(Object o)
从列表中删除指定元素的第一个出现(如果存在)(可选操作)。
boolean
removeAll(Collection<?> c)
从此列表中删除包含在指定集合中的所有元素(可选操作)。
default void
replaceAll(UnaryOperator<E> operator)
将该列表的每个元素替换为将该运算符应用于该元素的结果。
boolean
retainAll(Collection<?> c)
仅保留此列表中包含在指定集合中的元素(可选操作)。
E
set(int index, E element)
用指定的元素(可选操作)替换此列表中指定位置的元素。
int
size()
返回此列表中的元素数。
default void
sort(Comparator<? super E> c)
使用随附的
Comparator
排序此列表来比较元素。default Spliterator<E>
spliterator()
在此列表中的元素上创建一个
Spliterator
。List<E>
subList(int fromIndex, int toIndex)
返回此列表中指定的 fromIndex (含)和 toIndex之间的视图。
Object[]
toArray()
以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
<T> T[]
toArray(T[] a)
以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。
-
List接口中的重要方法增 删 改 查
List接口中 重要方法 增,删,改,查 public class TestList { public static void main (String [] args) { /** * ArrayList 有序 有下标 元素可重复 * LinkedList 删除和插入数据 速度快 */ List list = new ArrayList(); //增 /**.add() 添加数据*/ list.add("张三"); list.add(10); list.add('男'); list.add(11.1); list.add('女'); list.add(12); //删 /**.remove(index)根据下标进行移除数据 */ list.remove(5); /**.remove(Object) 删除括号里面的数据*/ boolean b = list.remove(11.1); System.out.println(b); //改 /**.set(index , 值)*/ //查 System.out.println("---------------第一种--for循环-------------------------------"); /** .size() 获取集合的长度*/ int length = list.size(); for(int i = 0; i<length;i++) { /**.get(index) 根据下标获取数据*/ Object obj = list.get(i); System.out.println(obj+" "); } System.out.println(); System.out.println("------------------第二种--forEach------"); /** * 增强版的for循环 --forEach * 语法 for(数据类型 对象名字:集合名字){} * 作用 把集合中的每一个数据都赋值给前面的数据对象 * -- Object obj = list.get(i); */ for(Object obj:list) { System.out.println(obj+" "); } System.out.println(); System.out.println("-------------------第三种--迭代器循环------------------"); /**.iterator() 获取一个迭代器*/ Iterator iterator = list.iterator(); /**.hasNext() 判断下一个还有没有值,有数据继续循环,没有继续循环*/ while(iterator.hasNext()) { /** terator.next() 获取下一个值*/ Object obj = iterator.next(); System.out.println(obj+" "); } } }
查找数据
集合对象名.size()获取集合长度
//第一种方法
for(int i=0; i<list.size();i++) {
//list.get(i);获取i位次的值
System.out.print(list.get(i));
}
//第二种方法
/*
* 增强版的for循环
* 语法
* for(数据类型 名字:集合名字){}
* 作用:把集合中的每一个数据都赋值给前面的数据类型
*/
System.out.println(" ");
for(Object obj : list) {
System.out.print(obj+" ");
}
//第三种
/*
* 迭代器循环
*/
System.out.println(" ");
Iterator iterator = list.iterator();//前面的Interator是类
while(iterator.hasNext()){//iterator.hasNext()判断下一位还有没有值 有就接着循环
Object obj = iterator.next();
System.out.print(obj+" ");
}
插入另一个集合中的数据
语法:.addAll([ index ], 集合名)
public class testArrayList {
public static void main(String[] args) {
List list = new ArrayList();
/*
* 添加
*/
list.add(4);
list.add("可以");
list.add('嗯');
list.add(2.4);
list.add(12);
list.add("许昌");
/*
* .addall(index,集合名)把数据传入另一个集合
*/
List qwe = new ArrayList();//声明一个集合
qwe.add(3);
qwe.add("你好");
qwe.addAll(1,list);//表示从下标为1的位置开始插入list集合中的数据
System.out.println(qwe);
}
}
index - 要替换的元素的索引
element - 要存储在指定位置的元素
删除集合中的所有元素
语法:.clear()
//对象名.clear()删除集合中的所有元素
qwe.clear();
public E remove()
检索并删除此列表的头(第一个元素)。
public E remove(int index)
删除该列表中指定位置的元素。 将任何后续元素移动到左侧(从其索引中减去一个元素)。 返回从列表中删除的元素。
public E removeFirst()
从此列表中删除并返回第一个元素。
public E removeLast()
从此列表中删除并返回最后一个元素。