第一章:List集合_List接口介紹
1).特點
1).有序的;
2).可以存儲重復元素;
3).可以通過索引訪問;
List<String> list = new ArrayList<>(); list.add("張無忌"); list.add("張三豐"); list.add("章子怡"); list.add("章子怡");//OK的,可以添加 for(String s : list){ System.out.println(s);//有序的 }
2).方法
繼承了Collection接口的所有方法,並且又有很多自己的方法

void add(String item) 向滾動列表的末尾添加指定的項。 void add(String item, int index) 向滾動列表中索引指示的位置添加指定的項。 void addActionListener(ActionListener l) 添加指定的動作偵聽器以從此列表接收動作事件。 void addItemListener(ItemListener l) 添加指定的項偵聽器以接收此列表的項事件。 void addNotify() 創建列表的同位體。 void deselect(int index) 取消選擇指定索引處的項。 AccessibleContext getAccessibleContext() 獲取與此 List 關聯的 AccessibleContext。 ActionListener[] getActionListeners() 返回已在此列表上注冊的所有動作偵聽器的數組。 String getItem(int index) 獲取與指定索引關聯的項。 int getItemCount() 獲取列表中的項數。 ItemListener[] getItemListeners() 返回已在此列表上注冊的所有項偵聽器的數組。 String[] getItems() 獲取列表中的項。 <T extends EventListener> T[] getListeners(Class<T> listenerType) 返回目前已在此 List 上注冊為 FooListener 的所有對象的數組。 Dimension getMinimumSize() 確定此滾動列表的最小大小。 Dimension getMinimumSize(int rows) 獲取具有指定行數的列表的最少維數。 Dimension getPreferredSize() 獲取此滾動列表的首選大小。 Dimension getPreferredSize(int rows) 獲取具有指定行數的列表的首選維數。 int getRows() 獲取此列表中的可視行數。 int getSelectedIndex() 獲取列表中選中項的索引。 int[] getSelectedIndexes() 獲取列表中選中的索引。 String getSelectedItem() 獲取此滾動列表中選中的項。 String[] getSelectedItems() 獲取此滾動列表中選中的項。 Object[] getSelectedObjects() 獲取對象數組中此滾動列表的選中項。 int getVisibleIndex() 獲取上次由 makeVisible 方法使其可視的項的索引。 boolean isIndexSelected(int index) 確定是否已選中此滾動列表中的指定項。 boolean isMultipleMode() 確定此列表是否允許進行多項選擇。 void makeVisible(int index) 使指定索引處的項可視。 protected String paramString() 返回表示此滾動列表狀態的參數字符串。 protected void processActionEvent(ActionEvent e) 處理發生在此列表上的動作事件,方法是將這些事件指派給所有已注冊的 ActionListener 對象。 protected void processEvent(AWTEvent e) 此滾動列表的進程事件。 protected void processItemEvent(ItemEvent e) 處理發生在此列表上的項事件,方法是將這些事件指派給所有已注冊的 ItemListener 對象。 void remove(int position) 從此滾動列表中移除指定位置處的項。 void remove(String item) 從列表中移除項的第一次出現。 void removeActionListener(ActionListener l) 移除指定的動作偵聽器,以便不再從此列表接收動作事件。 void removeAll() 從此列表中移除所有項。 void removeItemListener(ItemListener l) 移除指定的項偵聽器,以便不再從此列表接收項事件。 void removeNotify() 移除此列表的同位體。 void replaceItem(String newValue, int index) 使用新字符串替換滾動列表中指定索引處的項。 void select(int index) 選擇滾動列表中指定索引處的項。 void setMultipleMode(boolean b) 設置確定此列表是否允許進行多項選擇的標志。
3).常用方法(以下幾個方法都是List接口中特有的方法)
1).增:public void add(int index,E e):將e添加到當前集合的index位置。
2).刪:public E remove(int index):刪除index位置上的元素,並將刪除的元素返回。
3).改:public E set(int index,E element):將element替換index位置上的元素,並將原index位置上的元素返回。
4).查:public E get(int index):獲取index位置上的元素。
示例代碼:
public static void main(String[] args) { //List集合中增加自己的add方法,add(int index,E e); List<String> list=new ArrayList<>(); list.add("aaaa"); list.add("bbbb"); list.add("cccc"); list.add(1,"dddd"); System.out.println(list); //刪除指定索引的元素,並將刪除的元素返回 String removeStr=list.remove(2); System.out.println(removeStr); System.out.println(list); //修改指定索引位置上的元素set(int index,E e),並將原index位置上的元素返回 String setStr=list.set(2,"ffff"); System.out.println(setStr); System.out.println(list); //通過索引獲取指定索引上的元素 String getStr=list.get(2); System.out.println("索引為3的元素為:"+getStr); System.out.println(list); }
第二章.實現List接口的常用類_ArrayList
1).list接口常用實現類
2).ArrayList
特點:
查詢快----使用索引
增刪慢---需要擴容,移位
圖解:
方法:
無特有方法
案例
public static void main(String[] args) { //List集合中增加自己的add方法,add(int index,E e); ArrayList<String> list=new ArrayList<>(); list.add("aaaa"); list.add("hhhh"); list.add("cccc"); list.add(1,"dddd"); System.out.println(list); //刪除指定索引的元素,並將刪除的元素返回 String removeStr=list.remove(2); System.out.println(removeStr); System.out.println(list); //修改指定索引位置上的元素set(int index,E e),並將原index位置上的元素返回 String setStr=list.set(2,"ffff"); System.out.println(setStr); System.out.println(list); //通過索引獲取指定索引上的元素 String getStr=list.get(2); System.out.println("索引為3的元素為:"+getStr); System.out.println(list); }
3).LinkedList
特點
使用鏈表實現
增刪快,查詢慢
圖解
方法
新增了一些方法,可以模擬棧、隊列:
1).public void push(Object o):壓棧 等同於addFirst
(E e)
,將指定元素添加到此集合的開頭
2).public E pop():彈棧--如果沒有元素,會拋異常;
public E poll():彈棧--如果沒有元素,會返回null【建議使用】
案例:
public class Demo { public static void main(String[] args) { LinkedList<String> list = new LinkedList<>(); list.push("孫悟空"); list.push("豬八戒"); list.push("沙和尚"); System.out.println(list); while (list.size() > 0) { System.out.println("彈出一個:" + list.poll()); System.out.println("集合大小:" + list.size()); } } }