package demo01;
import java.util.Collections;
import java.util.Comparator;
import java.util.Vector;
public class VectorClass {
//foreach循环,是一种简单的增强for循环,格式是for(类型名 变量名: 数组/集合),意思是逐一从数组或者集合中取出元素赋值给变量
public static void print(Vector v) {
for (int i: v) {
System.out.print(i + " ");
}
System.out.println();
}
public static void main(String[] args) {
Vector v = new Vector<>();
//public boolean addAll(Collection extends E> c) 将集合c中的元素加入到原集合中
//public boolean addAll(int index, Collection extends E> c) 在指定位置处将集合c中的元素加入到原集合中
//public synchronized boolean add(E e) 向动态数组尾部添加元素
//public void add(int index, E element) 在指定位置处添加元素
v.add(20);
v.add(0, 10);
v.add(30);
System.out.print("初始时动态数组v:");
print(v);
//public synchronized int capacity() 查看动态数组的容量
System.out.println("动态数组v的容量为:" + v.capacity());
//public synchronized int size() 查看动态数组的大小
System.out.println("动态数组v的大小为:" + v.size());
//public boolean contains(Object o) 查看动态数组中是否存在元素
System.out.println("动态数组v是否包含元素20:" + v.contains(20));
System.out.println("动态数组v是否包含元素40:" + v.contains(40));
//public synchronized E get(int index) 获取动态数组对应索引元素
System.out.println("动态数组v中索引为1的元素是:" + v.get(1));
//public int indexOf(Object o) 从初始位置开始查找元素对应的索引
System.out.println("动态数组v中第一个元素10的索引为:" + v.indexOf(10));
//public synchronized int indexOf(Object o, int index) 从指定位置开始查找元素对应的索引
System.out.println("动态数组v中从索引1开始查找的第一个元素10的索引为:" + v.indexOf(10, 1));
//public synchronized int lastIndexOf(Object o) 从最后位置开始向前查找元素对应的索引
System.out.println("动态数组v中最后一个元素20的索引为:" + v.lastIndexOf(20));
//public synchronized int lastIndexOf(Object o, int index) 从指定位置开始向前查找元素对应的索引
System.out.println("动态数组v中从索引0开始查找最后一个元素20的索引为:" + v.lastIndexOf(20, 0));
//public synchronized E firstElement() 获取动态数组第一个元素
System.out.println("动态数组v中第一个元素是:" + v.firstElement());
//public synchronized E lastElement() 获取动态数组最后一个元素
System.out.println("动态数组v中最后一个元素是:" + v.lastElement());
//public synchronized E set(int index, E element) 修改动态数组指定位置元素
v.set(1, 15);
System.out.print("将索引1处改为15时,动态数组v:");
System.out.println(v);
//public synchronized Object[] toArray() 将动态数组元素转换为数组
Object[] array = v.toArray();
System.out.print("将动态数组转换为普通数组array:");
for (Object i: array) {
System.out.print(i + " ");
}
System.out.println();
//public synchronized boolean removeElement(Object obj) 移除动态数组指定元素
v.removeElement(10);
System.out.print("移除10时,动态数组v:");
System.out.println(v);
//public synchronized E remove(int index) 移除动态数组指定索引元素
v.remove(1);
System.out.print("移除索引1的元素,动态数组v:");
System.out.println(v);
//public void clear() 清空动态数组
v.clear();
System.out.print("移除所有元素后,动态数组v:");
System.out.println(v);
//public synchronized boolean isEmpty() 判断动态数组是否为空
System.out.println("动态数组v是否为空:" + v.isEmpty());
System.out.println("动态数组v的容量为:" + v.capacity());
System.out.println("动态数组v的大小为:" + v.size());
//public static boolean addAll(Collection super T> c, T... elements) Collections静态方法,向集合中添加元素
Collections.addAll(v, 20, 10, 40, 30);
System.out.print("添加元素后动态数组v:");
System.out.println(v);
//public synchronized void sort(Comparator super E> c) 对动态数组进行排序,排序规则要创建比较器对象
v.sort(new Comparator() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
System.out.print("从小到大排序后动态数组v:");
System.out.println(v);
//public static void shuffle(List> list) 打乱动态数组中的元素
Collections.shuffle(v);
System.out.print("打乱元素后动态数组v:");
System.out.println(v);
}
}