《警世贤文》之勤奋篇:
有田不耕仓禀虚 有书不读子孙愚
宝剑锋从磨砺出 梅花香自苦寒来
少壮不经勤学苦 老来方悔读书迟
书到用时方恨少 事因经过始知难
板凳要坐十年冷 文章不写一句空
智慧源于勤奋 伟大出自平凡
书山有路勤为径 学海无涯苦作舟
少年不努力 老大徒伤悲
欲求生富贵 须下死功夫
每每都是用,才知道自己原来知道的是那么少,一边复习,一边总结,慢慢提升自己。加油!!!
1、Collection的子类们
1,List:有序(存储和读取的顺序有序),可重复。
ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,但是效率高。
Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低。
LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高。
2,Set:无序,唯一。
HashSet:底层数据结构是哈希表,那么它是怎样保证元素唯一性的呢?——>依赖两个方法:hashCode()和equals(),在实际开发中是要自动生成即可。
注意:LinkedHashSet:底层数据结构是链表和哈希表,由链表保证元素有序,由哈希表保证元素唯一。
TreeSet:底层数据结构是红黑树(自平衡二叉查找树),那么它又是怎样保证元素排序的呢?—–>自然排序和比较器排序。如何保证元素唯一性?—–>根据比较的返回值是否为0来决定。
2、对于Collection集合,到底使用谁?
1,唯一
判断是不是唯一,要是要求唯一,选择Set,而不用List。
判断要不要对集合进行排序,排序就用TreeSet。不排序就用HashSet。
确定了要用Set后不确定用哪个,那就直接用HashSet。
2,不唯一
- 不唯一,就用List
- 要安全就用Vector
- 不要安全就用ArrayList或者LinkedList,其中查询多用ArrayList,增删多用LinkedList。
- 确定了用List,但是不知道用哪个,就用ArrayList。
3,在使用集合的使用,不知道用哪个!
简单暴力的做法:直接用ArrayList。