Java 编程思想(三)集合容器

来源:互联网 发布:淘宝申请天猫客服介入 编辑:程序博客网 时间:2024/06/15 09:25

转载:Map是不是集合?

转载:《Java编程思想》学习笔记4——集合容器

1. Java中集合和容器的区别是什么

a. 容器的概念 

Java容器类类库的用途是保存对象(引用),主要分两个概念:
    1、Collection:一个独立元素的序列。List、Set、Queue。
    2、Map:一组成对的键值对对象。其实ArrayList也可以看做是数字与对象的关联关系,而如HashMap等,是对象与对象关联。
    List,Set,Queue都是继承自Collection的,而Collection是继承Iterable的,这样的实现可以返回一个迭代器。所以Collection及其子类可以使用迭代器来遍历数组元素。而对于List,有专门的迭代器,可以用于设置初始迭代位置和双向遍历。

b. 集合的概念

集合具有两重概念,首先可代指容器,很多翻译上会把集合和容器等同;其次集合也可指Collection这个具体的容器概念,此时容器包含集合。


2. Collection和Collections的区别

a. java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

b. java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。其主要功能有排序(Sort)、混排(Shuffling)、反转(Reverse)、拷贝(Copy)、替换所以的元素(Fill)、最大值最小值(max/min)等。


3. Map遍历的三种方法

(1).Map的values()方法可以获取Map值的集合:

Iterator it = map.values().iterator();  while(it.hasNext()){      Object obj = it.next();  }  
(2).Map的keySet方法可以获取Map键的Set集合:

Set<String> keys = map.keySet();  for(Iterator it = key.iterator(); it.hasNext(); ){      String key = it.next();      Object obj = map.get(key);  }  
(3).通过使用Entry来得到Map的key和value:

Set<Map.Entry<String, Object>> entrySet = map.entrySet();  for(Iterator <Map.Entry<String, Object>> it = entrySet.iterator(); it.hasNext(); ){      Map.Entry<String, Object> entry = it.next();      String key = entry.getKey();      Object value = entry.getValue();  }