使用集合的一些技巧

1 集合的一些技巧

1.1  需要唯一吗?

需要:Set

     需要制定顺序:

                   需要: TreeSet

                   不需要:HashSet

                   但是想要有一个和存储一致的顺序(有序):LinkedHashSet

                   //就是存储的是什么顺序,取出就是什么顺序

 不需要:List

            需要频繁增删吗?

                   需要:LinkedList

                   不需要:ArrayList

1.2  如何记录每一个容器的结构和所属体系呢?

看名字!

List:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复

     |--ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。

     |--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。

     |--Vector:内部是数组数据结构,是同步的。增删,查询都很慢!是旧的集合类

Set:元素不能重复,无序(也不需要角标)

     |--HashSet: 内部数据结构是哈希表 ,是不同步的。记住:如果元素要存储到HashSet集合中,必须覆盖hashCode方法和equals方法。

     |--TreeSet:可以对Set集合中的元素进行排序。是不同步的。 

后缀名就是该集合所属的体系。

前缀名就是该集合的数据结构。

 

看到array:就要想到数组,就要想到查询快,有角标.

看到link:就要想到链表,就要想到增删快,就要想要 add get remove+frist last的方法

看到hash:就要想到哈希表,就要想到唯一性,就要想到元素需要覆盖hashcode方法和equals方法。

看到tree:就要想到二叉树,就要想要排序,就要想到两个接口Comparable,Comparator 。

 

而且通常这些常用的集合容器都是不同步的

 

只有Vector和hashtable是同步的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值