package com.java.exp13;
/**
* 1、集合类概述
* 常见的集合:List,Set,Map,其中List与Set继承了Collenction接口
* 2、Collection接口
* Collenction接口时层次结构中的根接口。构成Collenction的单元称为元素
* Collenction接口通常不能直接使用,但该接口提供了添加、删除元素和管理数据的方法
* add remove isEmpty iterator() size()
* iterator的next()方法返回的时Object
* 3、List集合
* 3.1、List接口
* get(int index):获取指定索引位置的元素
* set(int index,Object obj):将集合中指定索引位置的对象修改为制定的对象
* 3.2、List接口的实现类
* ArrayList:实现了可变的数组,允许保存所有元素,可以根据索引位置对集合进行快速的随机访问
* 缺点:向指定的索引位置插入对象或者删除对象的速度较慢
* LinkedList:采用链表结构保存对象,便于插入和删除对象,但是随机访问速度慢
* 与数组一样,集合的索引也是从0开始
* 4、Set集合
* Set集合中的对象不按特定的方式排序,只是简单地将对象加入集合中
* Set的构造有一个约束条件,就是传入的Collection对象不嫩更有重复值
* Set接口的实现类有HashSet 和 TreeSet
* HashSet 不保证Set的迭代顺序,特别是它不保证该顺序永恒不变
* TreeSet 遍历时按照自然顺序递增排序
* 5、Map集合
* 通过key和value存储数据,不能包含相同的key,每个key只能映射一个value。
* 5.1、Map接口
* Map集合中允许值对象是努null,而且没有个数限制
* 5.2、Map接口的实现类
* HashMap:查询速度快
* TreeMap:添加删除和定位映射关系时,稍慢
*
* */
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
/*
Collection<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
//迭代器--遍历
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = it.next();
System.out.println(str);
}*/
/*//List集合
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
int i = (int) (Math.random()*list.size()-1); //获得0-2的随机数
System.out.println("随机获取数组中的元素:"+ list.get(i));
list.remove(2);
System.out.println("将索引是'2'的元素从数组中移除后,数组中的元素时:");
for(int j = 0;j<list.size();j++){
System.out.println(list.get(j));
}*/
//Map集合
Map<String,String> map = new HashMap<>();
map.put("01", "张三");
map.put("02", "李四");
map.put("03", "王五");
Set<String> set = map.keySet();
Iterator it = set.iterator();
System.out.println("key集合中的元素:");
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println();
Collection <String> coll = map.values();
it = coll.iterator();
System.out.println("value集合中的元素:");
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}