8.3 新集合

对应第8章新集合部分

新集合主要包含两个明确的概念:
1、集合(Collection):存储一组单独的元素,有两个子类:其中List(列表)按顺序容纳元素,而Set(集)不包含任何重复元素。
2、映射(Map):存储“键–值”对,Map可以返回存储key的一个Set,一个包含value值的List,或包含“键–值”对的List。
Map可以扩展到多维,Map里包含其他Map即可。

主要看:Collection,List,Set,Map,Iterator ,Comparable

1、Collection接口

Collection是最基本集合接口,它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List

2、 Set接口

Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复。
特征:无序且不可重复。

3、 List接口

List接口同样也继承于Collection接口,List接口的集合类中的元素是有序且可重复。
两个重要的实现类:ArrayList和LinkedList
1.ArrayList特点是有序可重复的
2.LinkedList是一个双向链表结构的。

4、Map接口

Map也是接口,该接口描述了从不重复的键到值的映射。Map接口用于维护键/值对(key/value pairs)。
特征:它描述了从不重复的键到值的映射。
两个重要的实现类:HashMap和TreeMap
1.HashMap,中文叫散列表,基于哈希表实现,特点就是键值对的映射关系。一个key对应一个Value。HashMap中元素的排列顺序是不固定的。更加适合于对元素进行插入、删除和定位。
2.TreeMap,基于红黑书实现。TreeMap中的元素保持着某种固定的顺序。更加适合于对元素的顺序遍历。

5、反复器(Iterator)

是枚举类(Enumeration)的升华,更好用。
任何集合都可以生成一个反复器,用 iterator()方法,且生成的反复器与原对象互为引用
方法有:
hasNext() next() remove()

    //  线性表pets
    List<Pet> pets = Pets.arrayList(12);
    //   遍历线性表
    for(Pet p : pets)
      System.out.print(p.id() + ":" + p + " ");
    System.out.println();
    // 由线性表pets生成的反复器it
    Iterator<Pet> it = pets.iterator();
    //  遍历反复器
    while(it.hasNext()) {
      Pet p = it.next();
      System.out.print(p.id() + ":" + p + " ");
    }
    System.out.println();

    // An Iterator can also remove elements:
    //  此处是引用,如果it变则pets也变
    it = pets.iterator();
    for(int i = 0; i < 6; i++) {
      it.next();
      it.remove();
    }
    System.out.println(pets);
//  注意,在最后一轮循环后,输出的pets只剩6个元素了

6、Comparable接口

Comparable可以用于比较的实现,实现了Comparable接口的类可以通过实现comparaTo方法从而确定该类对象的排序方式。

参考:http://blog.csdn.net/jiuqiyuliang/article/details/32697903

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值