List集合:
有序的collection(也称序列),此接口的用户可以对列表中的每个元素的插入位置进行精准的控制。
用户可以根据元素的索引(在列表中的位置)访问元素,并搜索列表中的元素。
与set不同,列表通常允许重复的元素。
特点:
元素有序,可重复
一、List集合的子类及其特点:
ArrayList:
底层数据结构是数组,查询快,增删慢,线程不安全,效率高。
Vector:
底层数据结构是数组,查询快,增删慢,线程安全,效率低。
LinkedList:
底层数据结构是链表,查询慢,增删快,线程不安全,效率高。
二、List集合的特有功能:
1、添加功能:
void add(int index,E element):在指定位置添加元素
2、获取功能:
E get(int index):获取指定位置的元素
3、列表迭代器:
ListIterator<E> listIterator():List特有迭代器
4、删除功能:
E remove(int index):根据索引删除元素,返回被删除的元素
5、修改功能:
E set(int index,E element):根据索引修改元素,返回被修改的元素
集合遍历:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class Student1{
String name;
int age;
public Student1(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class ListDemo {
public static void main(String[] args) {
List l =new ArrayList();
Student1 s1 = new Student1("小A",18);
Student1 s2 = new Student1("小B",18);
Student1 s3 = new Student1("小C",19);
Student1 s4 = new Student1("小D",19);
l.add(s1);
l.add(s2);
l.add(s3);
l.add(s4);
//迭代器遍历
Iterator i = l.iterator();
while(i.hasNext()) {
Student1 s = (Student1) i.next();
System.out.println(s.name+"----"+s.age);
}
System.out.println("---------");
//for循环size(),get()遍历
for(int k = 0;k < l.size();k ++) {
Student1 str = (Student1) l.get(k);
System.out.println(str.name+"----"+str.age);
}
}
}
ListIterator的特有功能:
1、添加功能:
(1)迭代器迭代元素,迭代器修改元素,元素跟在迭代的元素后
(2)集合遍历元素,集合修改元素(for)元素添加到最后
2、逆向遍历:前提是要先正向遍历
ListIterator lit = l.listIterator();
//正向遍历
Iterator i = l.iterator();
while(i.hasNext()) {
String s = (String) i.next();
System.out.println(s);
}
//逆向遍历
while(lit.hasprevious()){
String s = (String)lit.previous();
System.out.println(s);
}
三、LinkList特有的功能:
1、添加功能:
public void addFirst(E e):把指定元素插入到表头
public void addLast(E e):把指定元素插入到结尾
2、获取功能:
public E getFirst():返回此列表的第一个元素
public E getLast():返回此列表的最后一个元素
3、删除功能:
public E removeFirst():移除并返回列表的第一个元素
public E removeLast():移除并返回列表的最后一个元素