叨逼叨两句
- 如果现在让你心情惆怅的事,能在你踏实的行动下解决,那你的惆怅是不是在浪费时间?
- 语言的力量,往往让人能够画地为牢,所以千万不要说写听任何使自己觉得自己不行的话,防止自证预言把自己带进沟里。
- 当然,也不能就完全脱离现实规律,楼得一阶一阶上,事得一件一件干。
15-11:并发修改异常产生的原因及解决方案
这个视频再看一遍【15-11】
package com.test.regex;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo23 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("world");
list.add("c");
list.add("d");
list.add("e");
/*Iterator it = list.iterator();
while(it.hasNext()){
String str =(String) it.next();
if("world".equals(str)){
list.add("javaee");
//并发修改异常,java.util.ConcurrentModificationException
//list使用迭代器Iterator时,不能用自己的方法去添加元素
}
}*/
ListIterator lit = list.listIterator(); //使用这个List特有的迭代器可解决这个问题
while(lit.hasNext()){
String str = (String) lit.next();
if("world".equals(str)){
// list.add("javaee"); //光使用ListIterator这个迭代器是不够的,还得使用它的方法
lit.add("javaee");
}
}
System.out.println(list);
}
}
15-12:ListIterator
package com.test.regex;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo23 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("world");
list.add("c");
list.add("d");
list.add("e");
ListIterator lit = list.listIterator();
while(lit.hasNext()){
System.out.println(lit.next()); //获取指针,并将指针向后移动
}
System.out.println("----------------------------");
while(lit.hasPrevious()){
System.out.println(lit.previous()); //获取指针,并将指针向前移动
}
}
}
15-13:Vector
这个类基本被ArrayList取代了
package com.test.regex;
import java.util.Enumeration;
import java.util.Vector;
public class Demo24 {
public static void main(String[] args) {
Vector v = new Vector();
v.addElement("a");
v.addElement("b");
v.addElement("c");
v.addElement("d");
Enumeration en = v.elements(); //获取枚举
while(en.hasMoreElements()){ //判断集合中是否有元素
System.out.println(en.nextElement()); //获取集合中的元素
}
}
}
15-14:数据结构之数组和链表【再看一遍视频】
- 数组:查询快、增删慢
- 链表:查询慢、增删快
15-15:List三个子类特点
特点
-
ArrayList
- 底层数据结构——数组
- 线程不安全、效率高
-
LinkedList
- 底层数据结构——链表
- 线程不安全、效率高
-
Vector
- 底层数据结构——数组
- 线程安全、效率低
Vector相对ArrayList查询慢(线程安全)
Vector相对LinkList增删慢(数组结构)
应用选择
- 查询多用ArrayList
- 增删多用LinkList
- 如果都多用ArrayList
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。