1. 程式人生 > 其它 >關於Java中Collection介面方法以及ArrayList方法使用程式碼舉例

關於Java中Collection介面方法以及ArrayList方法使用程式碼舉例

技術標籤:Java

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class ArrayListDemo {
    public static void main(String[] args) {
        /* ArrayLiat: 使用的是陣列結構,對於增加刪除慢,查詢快,可以儲存重複資料
        傳入泛型,準備在集合中儲存什麼樣的型別,必須傳入引用型別,對於基本型別需要使用他們的包裝類
        有三種構造方法,看API;如果初次需要儲存大量資料,那麼使用一參構造方法,無參構造方法自動擴容會浪費大量空間(三種構造方法看結尾)*/
// 例項化ArrayList物件,並指定泛型型別 ArrayList<Integer> data = new ArrayList<>(); /** * 以下方法從Collection介面繼承而來 */ // 1.public boolean add(E e) 向集合中插入一個元素,add單參方法返回布林值型別,只能是true,看結尾圖二 for (int i = 0; i <= 9; i++) { data.add(i); }
// 2.public boolean addAll(Collection ? extends E> c) 向集合中插入一組元素 ArrayList<Integer> data1 = new ArrayList<Integer>(); for (int j = 0; j < 5; j++) { data1.add(j); } // 5.public boolean containsAll(Collection ?> c) 查詢一組元素是否存在 System.
out.println(data.containsAll(data1)); System.out.println(data.addAll(data1)); // 4.public boolean contains(Object o) 查詢一個元素是否存在 System.out.println(data.contains(100)); // 6.public boolean isEmpty() 判斷集合是否為空 System.out.println(data.isEmpty()); // 7.public Iterator<E> iterator() 為 Iterator 介面例項化,用於建立Iterator物件 Iterator<Integer> iterator = data.iterator(); while (iterator.hasNext()) { Integer i = iterator.next(); System.out.println(i); } // 8.public boolean remove(Object o) 從集合中刪除一個物件,Collection中可以用下標刪除也可以使用指定元素 List<String> list = new ArrayList<String>(); list.add("300"); // 可以根據特定物件進行刪除 list.remove("300"); System.out.println(list.size()); data.remove(0); // 9.boolean removeAll(Collection ?> c) 從集合中刪除一組物件 System.out.println(data.removeAll(data1)); // 10.boolean retainAll(Collection ?> c) 判斷是否沒有指定的集合 System.out.println(data.retainAll(data1)); // 11.public int size() 求出集合中元素的個數 System.out.println(data.size()); // 12.public Object[] toArray() 把集合中的元素儲存到陣列中,以物件陣列的形式返回集合中的全部內容 // 13.<T> T[] toArray(T[] a) 指定操作的泛型型別,並把內容返回 /** * 1.普通集合轉陣列方式 * Object[] string = data.toArray(); * 2.已知泛型型別,使用更好的方法:<T> T[] toArray(T[] a) * 當然因為list集合中有自定義的get方法,這種取資料的方法更適合在set集合中使用 */ // 兩個方法輸出一樣 Integer[] integers = data1.toArray(new Integer[0]); for (int i = 0; i < integers.length; i++) { System.out.print(integers[i] + ","); } System.out.println(integers); Integer[] string = data1.toArray(new Integer[]{}); for (int i = 0; i < string.length; i++) { System.out.print(string[i] + ","); } System.out.println(string); // [Ljava.lang.Object;@7c30a502 System.out.println(data.toArray()); // 14.public boolean equals(Object o) 從 Object 類中覆寫而來,o:要與此集合進行相等性比較的物件 System.out.println(data1.equals(data)); // 15.public int hashCode() 從 Object 類中覆寫而來,返回此集合的雜湊值 System.out.println(data1.hashCode()); // 3.public void clear() 清空集合中的元素 data.clear(); /** * 以下方法是ArrayList介面單獨定義的 */ // 1.public void add(int index,E element) 在指定位置處增加元素 data.add(0, 300); data.add(100); data.add(100); // 2.boolean addAll(int index,Collection ? extends E> c) 在指定位置處增加一組元素 data.addAll(2,data1); for(Integer i : data){ System.out.print(i+","); } // 3.public E get(int index) 根據索引位置取出每一個元素;對於get方法,如果獲取的下標中沒有元素,那麼會丟擲異常 System.out.println(data.get(1)); System.out.println(data.get(2)); // 4.public int indexOf(Object o) 根據物件查詢指定的位置,從前往後第一個(如果有重複元素),找不到返回-1 System.out.println(data.indexOf(100)); // 5.public int lastIndexOf(Object o) 從後面向前查詢位置,找不到返回-1 System.out.println(data.lastIndexOf(100)); // 6.public ListIterator<E> listIterator() 返回 ListIterator 介面的例項,建立ListIterator物件 ListIterator<Integer> iterator1 = data.listIterator(); System.out.println("----------華麗分割線----------"); // 7.public ListIterator<E> listIterator(int index) 返回從指定位置的 ListIterator 介面的例項 for (Integer s : data){ System.out.print(s+","); } System.out.println(); ListIterator<Integer> iterator2 = data.listIterator(2); while(iterator2.hasNext()){ System.out.print(iterator2.next()+","); } System.out.println(); // 8.public E remove(int index) 刪除指定位置的內容,並返回刪除的元素 System.out.println("被移除的元素是:" + data.remove(2)); // 9.E set(int index,E element) 修改指定位置的內容,並返回被替換的元素值 System.out.println("替換的元素為:" + data.set(1, 200)); // 10.List<E> subList(int fromIndex,int toIndex) 返回子集合,左閉右開 for (int i = 0; i <= 9; i++) { data.add(i); } // [0, 1, 2], System.out.println(data.subList(2, 5)); // 300、200、0、1、2、3、4、5、6、7、8、9 System.out.print("集合中的內容是:"); for (int x = 0; x < data.size(); x++) { if (x == data.size() - 1) { System.out.print(data.get(x)); } else { System.out.print(data.get(x) + "、"); } } } }

在這裡插入圖片描述

圖一
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20210107221944244.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Njc5MjM5,size_16,color_FFFFFF,t_70)
圖二