List集合
Java.util.List
List特点:
- 有序的集合,存储元素和取出元素的顺序是一致的
- 有索引,包含了一些带索引的方法
- 允许存储重复的元素
List接口中带索引的方法
注意:操作索引的时候,一定防止索引越界异常
/*
* public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
* public E get(int index) :返回集合中指定位置的元素。
* public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
* public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
* */
public static void main(String[] args) {
List<String> l = new ArrayList<>();
l.add("张三");
l.add("赵四");
l.add("王五");
l.add("张三");
System.out.println(l);//[张三, 赵四, 王五, 张三] 重写了toString方法
/*
* * public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
* */
l.add(2, "A");//在赵四和王五之间添加一个A
System.out.println(l);//[张三, 赵四, A, 王五, 张三]
/*
* public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
* */
l.remove(4);
System.out.println(l);//[张三, 赵四, A, 王五]
/*
* public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
* */
l.set(2, "B");//将A元素换成B元素
System.out.println(l);//[张三, 赵四, B, 王五]
/*
* public E get(int index) :返回集合中指定位置的元素。
* */
String string = l.get(2);
System.out.println(string);
/*
* list集合带有索引 所以有三种遍历list集合的方法
* */
System.out.println("====方法一======");
for(int i=0;i<l.size();i++){
String c = l.get(i);
System.out.println(c);
}
System.out.println("=====方法二======");
Iterator<String> iterator = l.iterator();
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(next);
}
System.out.println("=====方法三======");
for (String string2 : l) {
System.out.println(string2);
}
}
ArrayList
java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快
LinkedList集合
LinkedList集合特点:
- 底层是一个链表结构,查询慢,增删快
- 里面包含了大量操作首尾元素的方法
注意:使用LinkedList集合特点有的方法,不能使用多态(方法是集合所特有的 )
/*
* public void addFirst(E e) :将指定元素插入此列表的开头。
* public void addLast(E e) :将指定元素添加到此列表的结尾。
* public E getFirst() :返回此列表的第一个元素。
* public E getLast() :返回此列表的最后一个元素。
* public E removeFirst() :移除并返回此列表的第一个元素。
* public E removeLast() :移除并返回此列表的最后一个元素。
* public E pop() :从此列表所表示的堆栈处弹出一个元素。
* public void push(E e) :将元素推入此列表所表示的堆栈。
* */
public class Test15 {
public static void main(String[] args) {
LinkedList<String> l = new LinkedList<>();
l.add("a");
l.add("b");
l.add("c");
System.out.println(l);//[a, b, c]
/*
* public void addFirst(E e) :将指定元素插入此列表的开头。
* public void push(E e) :将元素推入此列表所表示的堆栈。
* */
//l.addFirst("www");
l.push("www"); //push方法和addFirst方法一样都是在表头添加元素
System.out.println(l);//
/*
* public void addLast(E e) :将指定元素添加到此列表的结尾。
* */
l.addLast("com");
System.out.println(l);//[www, a, b, c, com]
/*
* public E getFirst() :返回此列表的第一个元素。
* */
String first = l.getFirst();
System.out.println(first);
/*
* public E removeFirst() :移除并返回此列表的第一个元素。
* public E pop() :从此列表所表示的堆栈处弹出一个元素。
* */
l.removeFirst();//删除表中第一个元素
//String pop = l.pop();//弹出表中第一个元素 从表中删除该元素
System.out.println(l);
/*
*public E removeLast() :移除并返回此列表的最后一个元素。
* */
String removeLast = l.removeLast();
System.out.println(removeLast);
System.out.println(l);
}
}
Vector集合
底层是数组,同步的单线程,速度慢,