2014-07-09 日志

45 篇文章 0 订阅
1:静态导入(了解)
(1)import可以用来导包。
导入到类的级别
(2)静态导入是导入到方法的级别:
格式:
import static xxx.yyy.zzz.类名.方法名;


2:Set集合(理解)
(1)Set集合的元素无序,唯一。
(2)HashSet集合(掌握)
A:如何保证元素的唯一性?
底层数据结构是哈希表。
哈希表底层依赖两个方法:hashCode()和equals()。
顺序:
首先判断对象的hashCode()是否相同。
是:继续走equals(),看其返回值是
true:说明元素重复了,不添加。
false:就直接添加到集合。
否:就直接添加到集合。


用的时候看到Hash结构的集合,我们就可能需要重写hashCode()和equals()。
并且,我们也不用自己写,可以自动生成。
B:案例:
a:HashSet存储字符串并遍历
b:HashSet存储自定义对象并遍历。(保证唯一性)
(3)TreeSet集合(理解)
A:如何保证元素的唯一性?
根据比较的返回值是否是0来判断。
B:如何保证元素的排序?
a:自然排序(元素具备比较性)
元素所属的类实现Comparable接口
b:比较器排序(集合具备比较性)
集合的构造方法接收Comparator接口


注意:
一般来说,主要条件我们肯定是已知的。
但是,请大家一定要注意次要条件的分析。
C:案例:
a:按照年龄比较
b:按照姓名的长度比较


3:Collection集合的总结(背诵)
Collection
|--List(有序这里的顺序是存储和取出的顺序,可重复)
|--ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
|--Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
|--LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
|--Set(无序,唯一)
|--HashSet
底层数据结构是哈希表。
如何保证元素唯一性?
底层数据结构是哈希表。
哈希表底层依赖两个方法:hashCode()和equals()。
顺序:
首先判断对象的hashCode()是否相同。
是:继续走equals(),看其返回值是
true:说明元素重复了,不添加。
false:就直接添加到集合。
否:就直接添加到集合。
|--LinkedHashSet
底层数据结构是哈希表和链表组成。
由哈希表保证元素唯一。
由链表保证元素有序。
|--TreeSet
底层数据结构是二叉树。
如何保证元素的唯一性?
根据比较的返回值是否是0来判断。
如何保证元素的排序?
a:自然排序(元素具备比较性)
元素所属的类实现Comparable接口
b:比较器排序(集合具备比较性)
集合的构造方法接收Comparator接口


4:Collection我们到底使用谁?
唯一吗?
是:Set
排序吗?
是:TreeSet
否:HashSet
不知道使用谁,用HashSet。


否:List
要安全吗?
是:Vector(一般也不用)
否:ArrayList或者LinkedList
查询多:ArrayList
增删多:LinkedList
不知道使用谁,用ArrayList。

什么都不懂,用ArrayList。


5:集合中的数据结构总结
ArrayXxx:底层数据结构是数组,查询快,增删慢。
LinkedXxx:底层数据结构是链表,查询慢,增删快。
HashXxx:底层数据结构是哈希表。需要重写hashCode()和equals()。

TreeXxx:底层数据结构是二叉树。自然排序和比较器排序




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值