List子類 ArrayList Vector 和 LinkedList

List子類 ArrayList Vector 和 LinkedList

 List集合的子類遍歷集合中的元素可以使用的任何迭代遍歷方式

面試題:
List子類的特點?

    ArrayList
        底層數據結構是數組,查詢快,增刪慢,線程不安全,不同步,效率高
    vector
        底層數據結構是數組,查詢快,增刪慢,線程安全,同步,效率低

    LinkedList
        底層數據結構數鏈表,查詢慢,增刪快,線程不安全,不同步,效率高


       應用場景:ArrayList:開發中用的非常多!如果給一個需求,不知道使用誰的時候,都使用ArrayList

ArrayList

需求:
ArrayList去除集合中字符串的重複值(字符串的內容相同)(創建新集合)

代碼:
public static void main(String[] args) {
ArrayList al= new ArrayList();

    al.add("hello") ;
    al.add("world") ;
    al.add("world") ;
    al.add("java") ;
    al.add("javaee") ;
    al.add("javaweb") ;
    al.add("javaee") ;
    al.add("javaee") ;

    ArrayList nal = new ArrayList();

    Iterator i = al.iterator();

    while(i.hasNext()){
        String s = (String)i.next();
        if(nal.contains(s)){
            nal.add(s);
        }
    }
    Iterator i2 = nal.iterator();
    while (i2.hasNext()){
        String s = (String)i2.next();
        System.out.println(s);
    }
}

結果:
hello
world
java
javaee
javaweb

需求:
ArrayList去除集合中字符串的重複值(字符串的內容相同)附件條件:不允許新建集合去完成!

代碼:

 public static void main(String[] args) {
    ArrayList  al= new ArrayList();

    al.add("hello") ;
    al.add("world") ;
    al.add("world") ;
    al.add("java") ;
    al.add("javaee") ;
    al.add("javaweb") ;
    al.add("javaee") ;
    al.add("javaee") ;

    for(int x =0 ;x<al.size()-1;x++){
        for(int y = 1+x;y<al.size();y++){
            if(al.get(x).equals(al.get(y))){
                al.remove(y);
                y--;
            }
        }
    }
    Iterator i = al.iterator();

    while(i.hasNext()){
        String s = (String)i.next();
        System.out.println(s);
    }

}

結果:

hello
world
java
javaee
javaweb

Vector

Vecotr的特有功能:

添加功能:
    public void addElement(Object obj) :給Vector集合中添加元素
    public Object elementAt(int index)      ------>get(int index):獲取指定索引處的元素

    public Enumeration elements()       ---->Iterator iterator()
    boolean hasMoreElements()       ---->hasNext():判斷是否有下一個可以迭代的元素
    Object nextElement()            ----->next()

代碼:

public static void main(String[] args) {
Vector v = new Vector();

    v.addElement("Hello");
    v.addElement("World");
    v.addElement("Java");

    for(int x = 0;x<v.size();x++){
        String s = (String)v.elementAt(x);
        System.out.println(s);
    }
    System.out.println("*********");

    Enumeration e = v.elements();

    while(e.hasMoreElements()){
        String s = (String)e.nextElement();
        System.out.println(s);
    }
}

結果:

Hello
World
Java


Hello
World
Java

LinkedList

特有功能:
和添加相關的方法:
public void addFirst(Object e)
public void addLast(Object e)
和獲取相關的方法:
public Object getFirst()返回此列表的第一個元素。
public Object getLast():返回此列表的最後一個元素
和刪除相關的方法:
public Object removeFirst():刪除此列表的第一個元素
public Object removeLast():刪除此列表的最後一個元素

代碼:

public static void main(String[] args) {
    LinkedList ll = new LinkedList();

    ll.add("Hello");
    ll.add("World");
    ll.add("Java");

    /*和添加相關的方法:
    public void addFirst(Object e)
    public void addLast(Object e)*/

    ll.addFirst("你好");
    ll.addLast("我愛你");
    System.out.println(ll);
    System.out.println("*******************");


    /*和獲取相關的方法:
    public Object getFirst()返回此列表的第一個元素。 
    public Object getLast():返回此列表的最後一個元素*/
    System.out.println(ll.getFirst());
    System.out.println(ll.getLast());
    System.out.println("********************");

    /* 和刪除相關的方法:
    public Object removeFirst():刪除此列表的第一個元素
    public Object removeLast():刪除此列表的最後一個元素*/
    ll.removeFirst();
    ll.removeLast();
    System.out.println(ll);

}

結果

[你好, Hello, World, Java, 我愛你]


你好
我愛你


[Hello, World, Java]

發佈了68 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章