多线程
并发与并行
并行: 两个或多个事件在同一时刻发生(同时);
并行: 两个或多个事件在同一时间段内发生;
线程和进程
进程: 指一个内存中运行的程序,每一个程序都有自己的空间,一个程序可以同时运行多个进程,是系统运行程序的基本单位,系统运行一个程序是一个进程从创建到运行到消亡的过程;
线程: 进程内一个独立执行单元,一个进程可以同时并发多个线程;
集合
List集合
list集合中含有ArrayList和LinkedList
ArrayList底层是数组,LinkedList底层是双线链表。
以下直接用两组代码演示。
首先是ArrayList
public static void main(String[] args) {
//ArrayList底层是数组 LinkedList底层是双线链表
List<String> list = new ArrayList<String>();
//list中的数据可以重复 是有序的
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
list.add("ddd");
//这里由于在List的泛型上加入了<String> 所以list.add只能添加String类型
//作用是将list集合添加作为一个元素
//list.add(list);
//将list集合里的每一个元素再添加一遍
list.add("我是分割线");
list.addAll(list);
Iterator iterator = list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println();
//移除list集合内的元素
list.remove("ccc");
//清空list集合内的元素
//list.remove();
iterator = list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
接下来是LinkedList
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//添加元素到list集合的最后一位 remove同理 removeLast
list.addLast("lll");
//添加元素到list集合的第一位 remove同理 removeFirst
list.addFirst("qqq");
Iterator iterator = list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
Map集合
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<Integer,String>();
//通过put将value加入到map集合
map.put(1,"你好吗");
map.put(2,"吃了吗");
map.put(3,"好吃吗");
//如果,key值相等,value会覆盖
map.put(4,"爱吃吗");
System.out.println(map.get(4));
map.put(4,"你话真多");
//迭代的话,这里是迭代key值
Set set= map.keySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println();
//这里是迭代value值
Collection<String> collation = map.values();
iterator = collation.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println();
//迭代所有
set = map.entrySet();
iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}