List子接口

List子接口

特点:有序、有下标、元素可以重复

方法:

void add(int index, Object o)  //在index位置插入对象o

boolean addAll(int index, Collection c)  //将一个集合中的元素添加到此集合中的index位置

0bject get(int index)  //返回集合中指定位置的元素

List subList(int fromIndex,int toIndex)  //返回fromIndex和toIndex之间的集合元素

List实现类

ArrayList [重点]:

数组结构实现,查询快、增删慢

JDK1. 2版本,运行效率快、线程不安全

eg : 

public class Demo03 {
public static void main(String[] args) {
//先创建集合对象
List list = new ArrayList<>();
//1.添加元素
list.add("苹果");
list.add("小米");
list.add(0, "华为");
System.out.println ("元素个数:"+list.size());
System.out.println (list.toString());
//2.删除元素
//list.remove ("苹果");
//list.remove(0);
//System.out.println("删除之后:"+list.size ());
//System.out.println (list.toString () );
//3.遍历
//3.1使用for遍历
for (int i = 0; i < list.size (); i++) {
System.out.println (list.get (i) );
}
//3.2使用增强for
for(Object object : list){
System.out.println (object);
}
//3.3使用迭代器
Iterator it = list.iterator();
while(it.hasNext ( )){
System.out.println(it.next());
}
//3.4使用列表迭代器,和Iterator的区别,ListIterator可以向前或向后遍历,添加、删除、修改元素
ListIterator lit = list.listIterator ( );
while(lit.hasNext ( )){
//System.out.println (lit.next ());
//System.out.println (lit.nextIndex());
System.out.println (lit.nextIndex()+":"+lit.next());//从前往后
}
while(lit.hasPrevious()){
System.out.println (lit.previousIndex()+":"+lit.previous());//从后往前
}
//4.判断
System.out.println(list.contains ("苹果"));
System.out.println(list.isEmpty());
//5.获取位置
System.out.println (list.indexOf("华为"));
}
}

Vector:

数组结构实现,查询快、增删慢

JDK1.0版本,运行效率慢、线程安全

eg : 

public class Demo01 {
public static void main(String[] args) {
//创建数组
Vector vector = new Vector<>();
//1.添加元素
vector.add ("草莓");
vector.add ("芒果");
vector.add ("西瓜");
System.out.println ("元素个数:"+vector.size());
//2.删除

//3.遍历
//使用枚举器
Enumeration en = vector.elements ( );
while (en.hasMoreElements ()) {
String o = (String) en.nextElement ( );
System.out.println (o);
}
//4.判断
System.out.println (vector.contains ("西瓜") );
System.out.println (vector.isEmpty () );
//5.vector
//firsetElement、lastElement、elementAt();
}
}

LinkedList:

链表结构实现,增删快,查询慢

eg : 

public class Demo02 {
public static void main(String[] args) {
//创建集合
LinkedList linkedList = new LinkedList<> ( );
//1.添加元素
Student s1 = new Student("张三",20);
Student s2 = new Student("李四",16);
Student s3 = new Student("王二",17);
linkedList.add (s1);
linkedList.add (s2);
linkedList.add (s3);
System.out.println ("元素个数:"+linkedList.size());
System.out.println (linkedList.toString());
//2.删除
//linkedList.remove (new Student("张三",20));
//System.out.println ("删除之后:"+linkedList.size());
//linkedList.clear ();
//3.遍历
//3.1for遍历
for (int i = 0; i < linkedList.size(); i++) {
System.out.println (linkedList.get(i));
}
//3.2增强for
for (Object object : linkedList){
Student s = (Student)object;
System.out.println(s.toString());
}
//3.3使用迭代器
Iterator it = linkedList.iterator ( );
while (it.hasNext ( )){
Student s = (Student)it.next();
System.out.println(s.toString());
}
//3.4使用列表迭代器
ListIterator lit = linkedList.listIterator();
while (lit.hasNext ()){
Student s = (Student)lit.next();
System.out.println(s.toString());
}
//4.判断
System.out.println (linkedList.contains(s1));
System.out.println (linkedList.isEmpty());
//5.获取
System.out.println (linkedList.indexOf(s1));
}
}
posted @ 2021-03-15 14:31  星忄守候  阅读(62)  评论(0)    收藏  举报