list 是一个接口,继承自collection,所有colletcion的方法都可以用。
list的最常用的实现类是ArrayList。ArrayList有如下方法
1. .add 向list中插入元素
public static void main(String[] args) {
List list=new ArrayList();
list.add("qiezi");
list.add("hongshu");
System.out.print("插入之前的list"+list);
list.add(1,"apple");
System.out.print("插入之后的list"+list);
}
2. boolean addAll(int index, Collection<? extends E> c)
在指定位置插入另一个集合,
成功修改了该集合返回true,修改失败(当另一个集合为空),返回false
public static void main(String[] args) {
List list=new ArrayList();
list.add("demo1");
list.add("demo2");
System.out.println("插入之前的list"+list);
List list2=new ArrayList();
list2.add("demo3");
list2.add("demo4");
System.out.println("插入之前的list2"+list2);
List list3=new ArrayList();
Boolean b= list.addAll(1,list2);
System.out.println("插入之后的list"+list);
System.out.println("插入之后的list2"+list2);
System.out.println(b);
b= list.addAll(1,new ArrayList());
System.out.println("插入之后的list"+list);
System.out.println(b);
}
3.E get(int index)
返回index位置的元素
public static void main(String[] args) {
List list=new ArrayList();
list.add("demo1");
list.add("demo2");
System.out.println(list.get(2));
}
4. int indexOf(Object o)
返回某元素第一次出现的位置
public static void main(String[] args) {
List list=new ArrayList();
list.add("demo1");
list.add("demo2");
System.out.println(list.indexOf("demo2"));
}
5.ListIterator<E> listIterator()
返回此列表元素的列表迭代器(按适当顺序)。
listIterator和iterator的区别是什么呢?下面这篇博客比较详细的分析,可以参考。
JAVA中ListIterator和Iterator详解与辨析_longshengguoji的专栏-CSDN博客_listiterator和iterator的区别
这里大概讲一下他们的区别:
当只需要遍历集合时,两个迭代器的功能都是一样。
但是listIterator迭代器只能用于List和他的实现子类,iterator迭代器可以用于所有的集合使用。
所不同的就是listIterator迭代器的功能会比iterator迭代器的功能要多。
listIterator迭代器可以在遍历集合时添加、修改和删除,而iterator迭代器在遍历集合时只有删除。
遍历list
public static void main(String[] args) {
List list=new ArrayList();
list.add("demo1");
list.add("demo2");
Iterator iterator= list.listIterator();
while (iterator.hasNext())
{
System.out.println(iterator.next());
}
}
在遍历时删除
public static void main(String[] args) {
List list = new ArrayList();
list.add("demo1");
list.add("demo2");
System.out.println("插入之前的list" + list);
Iterator iterator = list.listIterator(); //迭代器对象
while (iterator.hasNext()) {
String a = (String) iterator.next();
if (a.equals("demo1")) {
iterator.remove();
}
}
System.out.println(list);//发现list中的demo1被删除
}
6.
ListIterator<E> listIterator(int index)
从指定位置开始,返回此列表元素的列表迭代器(按适当顺序)。
和上面那个迭代器不同的就是多了一个参数,就是能控制迭代器开始的位置。
7.
E set(int index, E element)
在索引为index位置的元素更改为element元素
List<String> list=new ArrayList<String>();//不加<string>也可以,加了让list中只能存放string类型
list.add("string1");
System.out.print(list);
8.
List<E> subList(int fromIndex, int toIndex)
返回从索引fromIndex到toIndex的元素集合,包左不包右
List list = new ArrayList();
list.add("demo1");
list.add("demo2");
list.add("demo3");
list.add("demo4");
List list2=list.subList(1,3);
System.out.print(list2);
9.不使用迭代器遍历list
List<String[]> list1=new ArrayList<String[]>();
String[] array1={"a","b","c"};//要向list中插入的string类型的数组
list1.add(array1);
String[] array2={"d","e","f"};//要向list中插入的string类型的数组
list1.add(array2);
for(String[] test:list1)//遍历数组
{
System.out.print(test[0]);
}
注意<>是为了限制列表中的元素类型,
List<Object []> new_item= new ArrayList<>();
new_item中只能放object的数组
List<Object []> new_item= new ArrayList<>(); Object [] a1={"name95",95,"loc95"}; Object [] a2={"name96",96,"loc96"}; Object [] a3={"name97",97,"loc97"};
new_item.add(a1); new_item.add(a2); new_item.add(a3);