JavaSE:
今天终于把集合结束了,这周尽量看完IO、多线程和网络编程吧。
①Map的常用方法:基本还是增删改查的那些东西,挑重要的讲了。一个是keySet(),能过获取map中所有的key值,values()方法能够获取map中所有的数据值。但其实获取了key之后通过get(key)遍历也能获得属性值。
②HashMap、TableMap、TreeMap:只有HasMap是无序的。
③HashMap原理:跟HashSet很像,有一个主数组,通过重写hascode()和equals()方法获得一个序列值,然后把数据存在主数组中。
④HashMap面试题:
为什么HashMap中的装填因子设置成0.75?这是一种在时间空间上的折中做法,如果是1那么哈希碰撞太多,链表就多,查询速度就慢。
主数组长度为什么是2的n次方?因为防止出现哈希碰撞。
⑤HashSet的底层用的是HashMap。TreeSet的底层是TreeMap。
算法:
今天就入门了一下栈和队列。
栈:加入栈是push,推出是pop
队列:加入队列是add,推出是poll
用栈实现队列:用两个栈,一个加入,一个输出
用队列实现栈:把队列第一个加入最后,循环次数是size-1