集合框架讲解

一、List:

List 代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引

List 允许使用重复元素,可以通过索引来访问指定位置的集合元素

List 默认按元素的添加顺序设置元素的索引

List 集合里添加了一些根据索引来操作集合元素的方法

另外:

List 额外提供了一个 listIterator() 方法,该方法返回一个 ListIterator 对象,

ListIterator 接口继承了 Iterator 接口,提供了专门操作 List 的方法

boolean hasPrevious()
Object previous()
void add()

ArrayList 和 Vector 是 List 接口的两个典型实现 区别:

1、Vector 是一个古老的集合,通常建议使用 ArrayList。

2、ArrayList 是线程不安全的,而 Vector 是线程安全的。

3、即使为保证 List 集合线程安全,也不推荐使用 Vector

  练习代码1:Person类
  练习代码2:TestArrayList类(主程序)

 

二、Map:

——Map 用于保存具有映射关系的数据,因此 Map 集合里保存着两组值, 一组值用于保存 Map 里的 Key,

      另外一组用于保存 Map 里的 Value

——Map 中的 key 和 value 都可以是任何引用类型的数据

——Map 中的 Key 不允许重复(值可以),即同一个 Map 对象的任何两个 Key 通过 equals 方法比较中

      返回 false。

——Key 和 Value 之间存在单向一对一关系,即通过指定的 Key 总能找到唯一的,确定的 Value

Map常用方法

HashMap 和 Hashtable 是 Map 接口的两个典型实现类,它们的区别:

——Hashtable 是一个古老的 Map 实现类,不建议使用。

——Hashtable 是一个线程安全的 Map 实现,但 HashMap 是线程不安全的。

——Hashtable 不允许使用 null 作为 key 和 value,而 HashMap 可以

注意

1、与 HashSet 集合不能保证元素的顺序的顺序一样,Hashtable 、HashMap 也不能保证其中

     key-value 对的顺序。

2、Hashtable 、HashMap 判断两个 Key 相等的标准是:两个 Key 通过 equals 方法返回 true,

     hashCode 值也相等。

3、Hashtable 、HashMap 判断两个 Value相等的标准是:两个 Value 通过 equals 方法返回 true。

另外:

——LinkedHashMap 是 HashMap 的子类。

——LinkedHashMap 可以维护 Map 的迭代顺序:迭代顺序与 Key-Value 对的插入顺序一致。

Properties :

——Properties 类是 Hashtable 的子类,该对象用于处理属性文件。

——由于属性文件里的 key、value 都是字符串类型,所以 properties 里的 Key 和 Value 都是字符串类型的。

TreeMap

1、TreeMap 存储 Key-Value 对时,需要根据 Key 对 key-value 对进行排序。

     TreeMap 可以保证所有的 Key-Value 对处于有序状态。

2、TreeMap 的 Key 的排序:

——自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有的 Key 应该是

      同一个类的对象,否则将会抛出 ClasssCastException。

——定制排序:创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对 TreeMap 中的

      所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口

练习代码:

  jdbc.properties
  Person类
  TestHashMap类(主程序)

 

三、操作集合的工具类:Collections:(注意不是Collection)

1、Collections 是一个操作 Set、List 和 Map 等集合的工具类

2、Collections 中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、

     对集合对象实现同步控制等方法。

排序操作:

reverse(List):反转 List 中元素的顺序。

shuffle(List):对 List 集合元素进行随机排序。

sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序。

sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序。

swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换。

同步控制

Collections 类中提供了多个 synchronizedXxx() 方法,该方法可使将指定集合包装成线程同步的集合,

从而可以解决多线程并发访问集合时的线程安全问题。

 

四、Enumeration

Enumeration 接口是 Iterator 迭代器的 “古老版本”

练习代码:

  Person类
  TestCollections类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值