Vector
不是重点
Vector vector = new Vector();
// 添加元素
vector.addElement("a");
vector.addElement("b");
vector.addElement("c");
vector.addElement("d");
// 遍历(特有方法)
// 快速枚举遍历
Enumeration enumeration = vector.elements();
while(enumeration.hasMoreElements()) {
System.out.println(enumeration.nextElement());
}
List
ArrayList
List 特有方法
add(int index,object obj)
get(int index)
set(int index,Object obj)
remove(int index)
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
//向指定索引添加元素
list.add(4,"a");
//替换指定索引的元素(不能越界 不能替换)
list.set(3, "LL");
//获取指定下表对应的元素
Object object = list.get(4);
System.out.println(object + "---get方法");
System.out.println(list);
// 利用List 中get方法遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//删除指定位置的元素
list.remove(1);
//利用迭代器遍历
Iterator iterator = list.iterator();
while(iterator.hasNext()) {
//使用迭代器遍历 next只能调用一次
System.out.println(iterator.next());
}
删除时的注意事项
// 删除时 要注意
List list = new ArrayList();
list.add(111);
list.add(222);
list.add(333);
// 删除
// 这里再删除的时候系统没有帮你自动装箱
// 所以你传进去的时索引
list.remove(111);
System.out.println(list);
//
ArrayList 常见问题
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
// 告诉迭代器 我这个长度为4 长度是固定的
// Iterator iterator =list.iterator();
// while (iterator.hasNext()) {
// String string = (String)iterator.next();
// if(string.equals("b")) {
// // 这里会发生并发修改异常
// //ConcurrentModificationException
// // 解决方案
// list.add("oh yes");
//
//
//
// }
//
// }
// System.out.println(list);
//
//
//获取list ListIterator
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext() ){
if(listIterator.next().equals("b")) {
// 迭代器 迭代时不能直接使用集合添加新元素
// 要让跌代器区添加
listIterator.add("Oh-yes");
}
}
//注意 一般在对集合迭代的时候 不要轻易改变集合长度
// 容易发生修改异常 解决方法使用迭代器 自己的添加方法
去除重复元素
1
//需求 在集合中存储 "a""a""a" "b""b""b" "c" "c" "c"
// 要求 去除重复元素
ArrayList list = new ArrayList();
ArrayList list1 = new ArrayList();
list.add("a");
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("b");
list.add("c");
list.add("c");
list.add("c");
Iterator iterator =list.iterator();
while (iterator.hasNext()) {
String string = (String)iterator.next();
if(!list1.contains(string)) {
list1.add(string);
}
}
System.out.println(list1);
2
ArrayList list = new ArrayList();
ArrayList list1 = new ArrayList();
list.add(new Student("涵涵",18));
list.add(new Student("涵涵",18));
list.add(new Student("凉凉",16));
list.add(new Student("凉凉",16));
list.add(new Student("星星",80));
list.add(new Student("星星",80));
Iterator iterator =list.iterator();
while (iterator.hasNext()) {
String string = (String)iterator.next();
// 核心 包含判断
// contains方法底层代码 依赖 equals方法
// equals 方法时基类的 比较地址是否相同
// 这里需要去Student类中 重写equals方法
if(!list1.contains(string)) {
list1.add(string);
}
}
System.out.println(list1);
LinkedList
需求 利用LinkedList 模拟栈的出栈 和入栈
入栈相当于 添加
出栈相当于 删除
什么是栈 和 队列结构
栈结构 :先入后出
队列结构:先入先出
封装一个类 模拟出栈入栈
LinkedList linkedList = new LinkedList();
linkedList.addLast("a");
linkedList.addLast("b");
// 判断集合是不是空的
while(!linkedList.isEmpty()) {
// 从最后一个开始删
System.out.println(linkedList.removeLast());
}