List Set
/|/
|
---------------------------------- |
| | |
ArrayList LinkedList Vector
/|/
|
Stack
1。ArrayList
不是线程安全的
需要说明的是,ArrayList的插入删除效率不如 LinkedList; 随机取出数据效果比较好
package com.yinbodotcc.Container;
import java.util.*;
import java.io.*;
public class ArrayListDemo
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
List<String> list = new ArrayList<String>();
System.out.println("请输入名称(q表示退出)");
while(true)
{
String input = scanner.next();
if(input.equals("q"))
break;
list.add(input);
}
System.out.print("您的输入是: ");
for(String temp:list)//注意这种表达方式
System.out.print(temp);
System.out.println();
String[]listArray=(String[])list.toArray(new String[0]);//注意这个new String[0]
for(int i=0;i<listArray.length;i++)
System.out.print(listArray[i]+" ");
System.out.printf("%n");
List<Integer> listA =new ArrayList<Integer>();
listA.add(1);
listA.add(2);
listA.add(3);
listA.remove(2);
listA.add(5);
listA.add(3, 8);//当然可以加到中间任意一个位置,这个就没有LinkedList效率高
for(int i:listA)//只想证明是加到最后的
System.out.print(i+" ");
System.out.println();
System.out.println(listA.contains(1));//个人觉得可以用index判断也是可以的
System.out.println(listA.indexOf(20));
listA.clear();
System.out.println(listA.contains(1));
System.out.println(listA.isEmpty());
}
}
2。LinkedList(在J2SE 5.0中,LinkedList也實作了新加入的java.util.Queue介面)
不是线程安全的
多了addFirst()、addLast()、 getFirst()、getLast()、removeFirst( )、removeLast()
remove() :取得並移除队列第一個元素
peek() : 取得队列第一個元素,不删除
offer(E e): 在队尾添加
3。Vector
线程安全的