JAVA Collection类
1.基本使用
import java.util.ArrayList;
import java.util.Collection;
public class myCollection {
public static void main(String[] args) {
//创建Collection集合的对象
//Collection本身是一个接口,无法实例化,故此通过其List子接口的ArrayList实现类来实例化(多态)
Collection<String> collection = new ArrayList<String>();
collection.add("Hello");
//输出集合对象
System.out.println(collection);//ArrayList重写了toString()方法
}
}
方法 | 说明 |
boolean add(E e) | 添加元素 |
boolean remove(Object o) | 删除指定元素 |
void clear() | 清空 |
boolean contains(Object o) | 判断是否包含指定元素 |
boolean isEmpty() | 判断是否空 |
int size() | 元素个数 |
2.Collection集合遍历
使用Iterator迭代器
Iterator iterator() 返回集合中元素的迭代器(依赖集合存在),通过集合的iterator()方法得到
方法 | 描述 |
void forEachRemainin | 对每个剩余元素执行给定的操作,直到所有元素都被处理或动作引发异常 |
boolean hasNext() | |
E next() | 返回迭代的下一个元素 |
void remove() | 从底层集合中删除迭代器返回最后 一个元素 |
//遍历
Iterator<String> it = collection.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
3.List集合(Abstract抽象类)
方法名 | 说明 |
void add(int index, E element) | |
E remove(int index) | |
E set(int index,E element) | |
E get(int index) |
遍历
1.list集合所特有的listiterator迭代器的使用
2.for增强循环 for(int i: arr)
3.1 ArrayList
List<Integer> l = new ArrayList<Integer>();
Iterator<Integer> it = l.listIterator();
while(it2.hasNext()) {
System.out.println(it.next());
}
ArrayList的使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dz8fyoL8-1615963066589)(https://raw.githubusercontent.com/Cassie317/cloudimg/main/img/image-20210317140356320.png)]
3.2 LinkedList
List<Integer> l = new LinkedList<Integer>();
LinkedList的使用
方法 | 说明 |
void addFirst(E e) | 链表开头插入元素 |
void addLast(E e) | 链表结尾插入元素 |
E getFirst() | 返回列表第一个元素 |
E getLast() | 返回最后一个元素 |
E removeFirst() | 删除并返回第一个 |
E removeLast() | 删除并返回最后一个 |
Queue继承LinkedList:
方法 | 抛出异常 | 返回特殊值 |
增加 | add() | offer() |
删除 | remove() | poll() |
获取元素 | element() | peek() |
3.3 Vector
Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的:
- Vector 是同步访问的。
- Vector 包含了许多传统的方法,这些方法不属于集合框架。
- 和ArrayList不同,Vector中的操作是线程安全的。
Vector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。
序号 | 方法描述 |
1 | void add(int index, Object element) 在此向量的指定位置插入指定的元素。 |
2 | boolean add(Object o) 将指定元素添加到此向量的末尾。 |
3 | boolean addAll(Collection c) 将指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的顺序添加这些元素。 |
4 | boolean addAll(int index, Collection c) 在指定位置将指定 Collection 中的所有元素插入到此向量中。 |
5 | void addElement(Object obj) 将指定的组件添加到此向量的末尾,将其大小增加 1。 |
6 | int capacity() 返回此向量的当前容量。 |
7 | void clear() 从此向量中移除所有元素。 |
8 | Object clone() 返回向量的一个副本。 |
9 | boolean contains(Object elem) 如果此向量包含指定的元素,则返回 true。 |
10 | boolean containsAll(Collection c) 如果此向量包含指定 Collection 中的所有元素,则返回 true。 |
12 | Object elementAt(int index) 返回指定索引处的组件。 |
13 | Object firstElement() 返回此向量的第一个组件(位于索引 0) 处的项)。 |
import java.util.*;
public class VectorDemo {
public static void main(String args[]) {
// initial size is 3, increment is 2
Vector v = new Vector(3, 2);
v.size();//0
v.capacity();//3
v.addElement(new Integer(1));
v.addElement(new Integer(2));
v.addElement(new Integer(3));
v.addElement(new Integer(4));
v.capacity();// 5
v.addElement(new Double(5.45));
v.capacity();//5
v.addElement(new Double(6.08));
v.addElement(new Integer(7));
v.capacity());//7
v.addElement(new Float(9.4));
v.addElement(new Integer(10));
v.capacity();//9
v.addElement(new Integer(11));
v.addElement(new Integer(12));
(Integer)v.firstElement());//1
(Integer)v.lastElement();//12
if(v.contains(new Integer(3)))
System.out.println("Vector contains 3.");//
// enumerate the elements in the vector.
Enumeration vEnum = v.elements();
System.out.println("\nElements in vector:");
while(vEnum.hasMoreElements())
System.out.print(vEnum.nextElement() + " ");
System.out.println();
}
}
set集合
继承collection和collection使用一样
不包含重复元素
不带索引,不能使用for循环遍历