package com.yau.test;
import java.util.*;
public class Main {
//容器 JAVA 给出的承载对象类型的一种ADT
//abstract data type
public static void main(String[] args){
//JAVA里面的内容
//collection 两种容器-list,set
//list ArrayList(底层是数组,初始化大小10,原大小的一半)
//LinkedList(没有大小限制,双向链表来实现)
//set(Set都没有角标,set的遍历只能通过迭代器,不能放重复的值)
// HashSet(无序)
// LinkedHashSet,有序,顺序就是放置的顺序
// TreeSet(必须实现Comparable接口才能放置再TS),通过平衡二叉树实现)
//Map 存放的内容都是K-V对,取值的时候,是通过K来取得v
//HashMap,底层的实现过程使用的有几个关键的参数以及过程必须背下来
//加载因子:0.75f 也就是说,存放的内容的大小达到0.75倍的原大小,这个时候hashmap就会扩容
//承载能力:初始化的时候是16,每次扩容都是翻倍(2的整数幂)
//转换因子:链表转树-8 树转链表-6
//存储内容使用的方案是拉链法,相同hash结果的值放在同一个数组位置下,通过首节点形成链表
//转成树的时候,使用的是红黑树来保存内容
Map<String,String> table = new HashMap<>();
table.put("aaa","asd");
System.out.println(table.get("aaa"));
table.put(null,null);
Stack<String> strings = new Stack<>();
strings.push("xingxinyuan");
strings.push("wangyongjie");
strings.push("liujia");
strings.push("aaa");
System.out.println(strings.size());
System.out.println(strings.peek());
System.out.println(strings.size());
// Integer[] i = {1,2,3,4,5,6,7,8,9};
// System.out.println(Arrays.toString(Arrays.copyOf(i,16)));
// System.out.println(Arrays.toString(Arrays.copyOfRange(i, 8, 16)));
//放置内容的时候,使用的都是单一一个泛型来确定放置的内容的类型是什么
// List lists = new LinkedList<>();
// lists.add(“aaa”);
// lists.add(“bbb”);
// lists.get(0);
//map(映射表)
//map中存的是K-V对,我们放置内容的时候,确定一下key值和v值,这两值一一对应,
//取值的时候,用key值取v值
// Map<String,Student> map = new HashMap<>();
// map.put(“xingxinyuan”,new Student());
// System.out.println(map.get(“xingxinyuan”));
//确认是否有键值,确认是否有值,确认是否为空,长度,放置内容,取出内容,删除内容,转换成容器类型
// Set myset = new HashSet<>();
// myset.add(“xingxinyuan”);
// myset.add(“aaa”);
// myset.add(“bbb”);
// myset.add(“ccc”);
// System.out.println(myset.size());
// Iterator iterator = myset.iterator();
// while (iterator.hasNext()){
// System.out.println(iterator.next());
// iterator.remove();
// }
// System.out.println(myset.size());
// for(String item: myset){
// System.out.println(item);
// }
}
}