JAVA學習第三十五課(常用對象API)- 集合架構(三)—Vector、LinkedList、ArrayList集合示範,vectorarraylist

來源:互聯網
上載者:User

JAVA學習第三十五課(常用對象API)- 集合架構(三)—Vector、LinkedList、ArrayList集合示範,vectorarraylist

集合架構構成圖


摘自百度圖片

一、Vector集合 示範

雖然Vector已經不常用了,但是還是要瞭解一下其中的方法

import java.util.ArrayList;import java.util.Enumeration;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.ListIterator;import java.util.Vector;import java.util.*;public class Main {public static void main(String[] args) {Vector vec = new Vector();vec.add("a1");vec.add("a2");vec.add("a3");vec.add("a4");Enumeration enumer = vec.elements();while (enumer.hasMoreElements()) {Object object = (Object) enumer.nextElement();System.out.println("next Elements"+object);}/* * 此介面的功能與 Iterator 介面的功能是重複的。此外,Iterator 介面添加了一個可選的移除操作,並使用較短的方法名。 * 新的實現應該優先考慮使用 Iterator 介面而不是 Enumeration 介面。 * */Iterator it = vec.iterator();while (it.hasNext()) {Object object = (Object) it.next();System.out.println("it next "+object);}}}

二、LinkedList集合示範

import java.util.LinkedList;public class Main {public static void main(String[] args) {LinkedList link = new LinkedList();link.addFirst("a1");link.addFirst("a2");link.addFirst("a3");link.addFirst("a4");/*頭插法*/System.out.println("link = "+link);//System.out.println("Get First elments = "+link.getFirst());//擷取第一個元素//System.out.println("Remove Frist elements = "+link.removeFirst());//刪除第一個元素/*while (!link.isEmpty()) {//從頭開是遍曆,取一個刪一個System.out.println(link.removeFirst());}*/while(!link.isEmpty()){//從尾開始遍曆System.out.println(link.removeLast());}System.out.println("Finally link = "+link);}}

API文檔解釋: 注意,此實現不是同步的。如果多個線程同時訪問一個連結清單,而其中至少一個線程從結構上修改了該列表,則它 必須 保持外部同步。(結構修改指添加或刪除一個或多個元素的任何操作;僅設定元素的值不是結構修改。)這一般通過對自然封裝該列表的對象進行同步操作來完成。如果不存在這樣的對象,則應該使用 Collections.synchronizedList 方法來“封裝”該列表。最好在建立時完成這一操作,以防止對列表進行意外的不同步訪問


Link的堆棧和隊列示範

import java.util.LinkedList;class queue{private LinkedList link;public queue() {// TODO Auto-generated constructor stublink = new LinkedList();}public void AddQueEle(Object obj){link.addLast(obj);}public Object GetQueEle(){return link.removeFirst();//棧只需改為 link.removeLast()即可}public boolean IsQueEmpty(){return link.isEmpty();}}public class Main {public static void main(String[] args) {queue Q = new queue();Q.AddQueEle("a1");Q.AddQueEle("a2");Q.AddQueEle("a3");Q.AddQueEle("a4");while(!Q.IsQueEmpty()){System.out.println(Q.GetQueEle());}}}

Link方法JDK1.6:

JDK1.5以前addFrist();添加addLast();JDK1.6offerFrist()offerLast();JDK1.5以前getFrist();擷取第一個元素(不刪除),如果Link為空白,拋出NoSuchElementException異常getLast();JDK1.6peekFrist():擷取第一個元素(不刪除),如果Link為空白,return nullpeekLast();JDK1.5removeFrist():擷取第一個元素並刪除,如果Link為空白,拋出NoSuchElementException異常removeLast():JDK1.6pullFrist():擷取第一個元素並刪除,如果Link為空白,return nullpullLast():

三、ArrayList集合示範

import java.security.Permissions;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;class Man{private String name;private int age;public Man(String name, int age) {super();this.name = name;this.age = age;}public Man() {super();// TODO Auto-generated constructor stub}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 Main {public static void main(String[] args) {ArrayList aList = new ArrayList();aList.add(new Man("a1",11));aList.add(new Man("a2",12));aList.add(new Man("a3",13));aList.add(new Man("a4",14));Iterator it = aList.iterator();while(it.hasNext()){Man pMan = (Man)it.next();System.out.println(pMan.getName()+"::"+pMan.getAge());}}}


java框架組合類怎學

先瞭解一下集合類的一個整體的架構 比如collection下面兩個介面 list set
list下面主要有三個實現ArrayList linkedList vector ,set下面主要有hashSet

而map則是另一個包下的 屬於集合架構 map下面有HashMap實現

然後 通過不同的對比 瞭解他們的特點 使用的場合 (互相對比)
ArrayList---vector(區別) arrayList 是非同步 vector是同步 非同步(一個人在對這個集合進行操作時 同時另外一個人 也可以對他進行操作)不安全 效能要高 效率要快 所以比較的常用
linkedList ---成鏈狀 與ArrayLIst比 (索引) 有索引 查詢要快 增加也快 但是插入比較的慢 所以 常用arrayList
hashSet與arrayList (有序與無序) hashset無序 所以不可重複(同一個對象add兩次 會覆蓋前面的) arrayList可以重複
map 以索引值對的形式進行儲存 按鍵來擷取值
 
JAVA中的Vector,ArrayList,LinkedList

Collections.sort(List對象,比較子對象Comparator);

就這一個方法就行,Vector和ArrayList都可以
比較子對象Comparator是你自寫的比較子,如果不會寫就去掉這個入參,用預設的比較子
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.