1. 程式人生 > 實用技巧 >集合常用功能(轉載)

集合常用功能(轉載)

Collection 常用功能

Collection是所有單列集合的父介面,因此在Collection中定義了單列集合(List和Set)通用的一些方法,這些方法可用於操作所有的單列集合。方法如下:

  • public boolean add(E e): 把給定的物件新增到當前集合中 。

  • public void clear():清空集合中所有的元素。

  • public boolean remove(E e): 把給定的物件在當前集合中刪除。

  • public boolean contains(E e): 判斷當前集合中是否包含給定的物件。

  • public boolean isEmpty()

    : 判斷當前集合是否為空。

  • public int size(): 返回集合中元素的個數。

  • public Object[] toArray(): 把集合中的元素,儲存到陣列中。

List介面中常用方法

List作為Collection集合的子介面,不但繼承了Collection介面中的全部方法,而且還增加了一些根據元素索引來操作集合的特有方法,如下:

  • public void add(int index, E element): 將指定的元素,新增到該集合中的指定位置上。

  • public E get(int index):返回集合中指定位置的元素。

  • public E remove(int index)

    : 移除列表中指定位置的元素, 返回的是被移除的元素。

  • public E set(int index, E element):用指定元素替換集合中指定位置的元素,返回值的更新前的元素。

LinkedList集合

實際開發中對一個集合元素的新增與刪除經常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法。這些方法我們作為了解即可:

  • public void addFirst(E e):將指定元素插入此列表的開頭。

  • public void addLast(E e):將指定元素新增到此列表的結尾。

  • public E getFirst():返回此列表的第一個元素。

  • public E getLast()

    :返回此列表的最後一個元素。

  • public E removeFirst():移除並返回此列表的第一個元素。

  • public E removeLast():移除並返回此列表的最後一個元素。

  • public E pop():從此列表所表示的堆疊處彈出一個元素。

  • public void push(E e):將元素推入此列表所表示的堆疊。

  • public boolean isEmpty():如果列表不包含元素,則返回true。

HashSet儲存自定義型別元素

給HashSet中存放自定義型別元素時,需要重寫物件中的hashCode和equals方法,建立自己的比較方式,才能保證HashSet集合中的物件唯一

public class Student {
private String name;
private int age;

public Student() {
}

public Student(String name, int age) {
this.name = name;
this.age = age;
}

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;
}

@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}

@Override
public int hashCode() {
return Objects.hash(name, age);
}
}

LinkedHashSet

我們知道HashSet保證元素唯一,可是元素存放進去是沒有順序的,那麼我們要保證有序,怎麼辦呢?

在HashSet下面有一個子類java.util.LinkedHashSet,它是連結串列和雜湊表組合的一個數據儲存結構。

Collections

  • java.utils.Collections是集合工具類,用來對集合進行操作。部分方法如下:

  • public static <T> boolean addAll(Collection<T> c, T... elements):往集合中新增一些元素。

  • public static void shuffle(List<?> list) 打亂順序:打亂集合順序。

  • public static <T> void sort(List<T> list):將集合中元素按照預設規則排序。

  • public static <T> void sort(List<T> list,Comparator<? super T> ):將集合中元素按照指定規則排序。