在Java编程中,集合框架是处理数据结构的主要工具之一。它提供了一套丰富的接口和实现,可以用来存储、操作和迭代各种类型的对象。下面,我们将通过图解的方式,带你轻松掌握Java集合框架中各类集合类的用法。
集合框架概述
Java集合框架主要包括以下几个接口:
- Collection接口:这是集合框架的根接口,所有的集合类都直接或间接地实现了这个接口。
- List接口:表示有序集合,允许重复元素。
- Set接口:表示无序集合,不允许重复元素。
- Queue接口:表示队列,通常用于处理先进先出(FIFO)的数据结构。
- Deque接口:表示双端队列,可以从前端和后端进行元素插入和删除操作。
集合类图解
1. Collection接口
public interface Collection<E> extends Iterable<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean removeAll(Collection<?> c);
boolean retainAll(Collection<?> c);
void clear();
}
2. List接口
public interface List<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
E get(int index);
E set(int index, E element);
void add(int index, E element);
E remove(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
List<E> subList(int fromIndex, int toIndex);
}
3. Set接口
public interface Set<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean retainAll(Collection<?> c);
boolean removeAll(Collection<?> c);
void clear();
}
4. Queue接口
public interface Queue<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
E peek();
E poll();
E offer(E e);
boolean offer(E e);
}
5. Deque接口
public interface Deque<E> extends Queue<E> {
void addFirst(E e);
void addLast(E e);
E removeFirst();
E removeLast();
E getFirst();
E getLast();
boolean offerFirst(E e);
boolean offerLast(E e);
E pollFirst();
E pollLast();
E getFirst();
E getLast();
}
各类集合类用法示例
1. ArrayList
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list.get(1)); // 输出 Banana
System.out.println(list.size()); // 输出 3
2. HashSet
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Cherry");
System.out.println(set.contains("Banana")); // 输出 true
System.out.println(set.size()); // 输出 3
3. LinkedList
List<String> list = new LinkedList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list.get(1)); // 输出 Banana
System.out.println(list.size()); // 输出 3
4. PriorityQueue
Queue<String> queue = new PriorityQueue<>();
queue.add("Apple");
queue.add("Banana");
queue.add("Cherry");
System.out.println(queue.poll()); // 输出 Apple
System.out.println(queue.size()); // 输出 2
5. ArrayDeque
Deque<String> deque = new ArrayDeque<>();
deque.addFirst("Apple");
deque.addLast("Banana");
deque.addFirst("Cherry");
System.out.println(deque.pollFirst()); // 输出 Cherry
System.out.println(deque.pollLast()); // 输出 Banana
System.out.println(deque.size()); // 输出 1
通过以上图解和示例,相信你已经对Java集合框架有了初步的了解。在实际开发中,根据需求选择合适的集合类,可以让你在处理数据时更加得心应手。
