56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
public class ThreadTest {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 50; i++) {
MainThread main = new MainThread();
main.start();
main.join();
}
}
}
class MainThread extends Thread {
@Override
public void run() {
SubThread sub = new SubThread();
sub.start();
try {
sub.join();
} catch (InterruptedException e) {
// LOG
}
for (int i = 0; i < 100; i++) {
System.out.println("main: " + i);
}
}
}
class SubThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("sub: " + i);
}
}
}
57、介绍Collection框架的结构
Iterable
Collection
List
ArrayList
LinkedList
Vector
Stack
Set
HashSet
SortedSet
TreeSet
Map
SortedMap
TreeMap
Hashtable
Properties
HashMap
LinkedHashMap
Collections,不属于集合,是集合类的工具类
Arrays,不属于集合类,是数据对象的工具类
58、Collection框架中实现比较要实现什么接口
Comparable/Comparator
59、ArrayList和Vector的区别
1. 线程同步,Vector线程安全,ArrayList线程不安全
2. 效率问题,Vector效率低,ArrayList效率高
3. 增长数量,Vector以1.5倍增长,ArrayList以2倍增长
60、HashMap和Hashtable的区别
1. 线程同步,Hashtable线程安全,HashMap线程不安全
2. 效率问题,Hashtable效率低,HashMap效率高
3. HashMap可以使用null作为key,Hashtable不可以使用null为key
4. HashMap使用的是新实现,继承AbstractMap,而Hashtable是继承Dictionary类,实现比较老
5. Hash算法不同,HashMap的hash算法比Hashtable的hash算法效率高
6. HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey。因为contains方法容易让人引起误解。
7. 取值不同,HashMap用的是Iterator接口,而Hashtable中还有使用Enumeration接口