集合框架:
2.1 vector
Vector(向量):动态数组
为什么需要动态数组,很多时候,我们无法先去确定数组的元素的个数,如果使用了静态数组,小了不够用,大了会造成内存空间的浪费。这个时候我们就需要动态的数组,可以按照一定增量来增加容量。
Vector<Integer> v1 = new Vector<>(5,2); //动态数组的容量默认为十
//初始容量 自增量
System.out.println(v1.capacity());
System.out.println(v1.size());
v1.add(1);
v1.add(2);
v1.add(3);
v1.add(4);
v1.add(5);
v1.add(6);
v1.add(7);
v1.add(8);
v1.add(9);
v1.add(10);
v1.add(11);
v1.remove(1);
v1.remove(3);
v1.remove(5);
System.out.println(v1.capacity());
System.out.println(v1.size());
System.out.println(v1.toString());
Vector 的初始容量和和增量都是十,可以通过他的构造方法来设置容量和增量。所谓的增量,就是在容量不够时,增加的量
Size capacity add remove(int index): 删除指定位置的元素 remove(object o): 删除指定元素 (第一个)
trimToSize() 将容量调至最小 indexOf() 找出指定元素的下标
Get() 找出指定下标的元素 contains() 找出元素是否在
Set() 根据下标 值换成你指定的值 firstElement()
2.2 栈 stack
栈的特点:先进后出,后进先出
Push 把项压入栈顶。()
Peek 查看栈顶对象而不移除它。
Search 返回对象在栈中的位置,以 1 为基数。
Pop 移除栈顶对象并作为此函数的值返回该对象。
2.3 List 类
Lists 是一个接口,继承自 collection 接口,常用的实现类:ArrayList,LinkList,
2.4 Set
Set 也是一个接口,它表示一个无重复元素的集合,无序,唯一(它
是通过判断hashCode来判断是否重复,如果得不到我们想要的结果,那就重写aquals方法)。
Set的实现类 hashSet
当我们添加了重复的元素,但输出时,并没有出现重复,(Set的重复的意思是a.equals(b)返回ture)
2.5 Map
Map是以键值对(key:value)的形式存储数据,常用有jdbc中。
Map 也是无序的,且键值要求是唯一的。如果有重复的键名,以最后出现的键值为准。
2.6 迭代器
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(11);
list.add(8);
list.add(7);
list.add(6);
Iterator<Integer> iterator = list.iterator();
//使用next()获得序列中的下一个元素。
while (iterator.hasNext()){
//使用hasNext()检查序列中是否还有元素。
System.out.println(iterator.next());
}
2.7 Collections 工具类
Swap 在指定列表的指定位置处交换元素。
replaceAll 使用另一个值替换列表中出现的所有某一指定值。
Sort 顺序排序 max min 最大值 最小值
Shuffle 随机排序
Reverse 倒序排列