标题图
Java 当中的类集框架
类集框架, 那么什么是类集框架, 集合的种类有哪些, 类集框架的基础结构.
类集框架是一组类和接口的集合, 位于 java.util 包当中, 是用来用户存储和管理对象的, 在这个类集合框架中, 我们主要学习的为三大类, 分别是集合, 列表和映射.
集合, 列表, 映射
Set 为集合, 在集合中的对象是不按照顺序排列的, 并且是没有重复的对象的. 简单为: 无序, 无重复.
Set
List 为列表, 中在列表中的对象是由顺序的排序的, 并且是有重复的对象.
List
Map 为映射, 在集合中的每个元素都有一个键对象和一个值对象, 在 Map 中键是不可以重复的, 值是可以重复的.
Map
类集合框架主体
集合框架的构成及分类
image.png
顶级 Iterator 和 Collection
image.png
- import java.util.List;
- import java.util.ArrayList;
- public class Demo{
- public static void main(String args[]){
- // 创建列表的实现类对象
- ArrayList<String> arrayList = new ArrayList<String>();
- // 添加数据
- arrayList.add("a");
- arrayList.add("b");
- arrayList.add("c");
- // 移除
- arrayList.remove(1);
- // 获取数据
- String s = arrayList.get(1);
- System.out.println(s);
- // 获取长度
- int a = arrayList.size();
- // 打印所有元素
- for(int i=0; i<arrayList.size(); i++){
- String s = arrayList.get(i);
- System.out.println(s);
- }
- }
- }
类集合框架是 jdk 提供的一类类和接口, 主要掌握集合, 列表, 映射, 集合是无序的, 集合中的元素不允许是重复的, 列表是有序的, 列表中的元素是允许重复的, 映射是以键值对的方式来存储数据, 键是不可重复的, 值是可以重复的.
Set
List
Map
Collection 和 Iterator 接口
Collection 是 List 和 Set 的父类
image.png
Collection 接口的方法
方法 | 说明 |
---|---|
int size() | 返回集合中元素的数目 |
boolean add(Object obj) | 向集合中添加对象 |
remove(Object obj) | 从集合中删除一个元素 |
void clear() | 删除集合当中的所有对象 |
boolean isEmpty() | 判断集合是否为空 |
Set 和 HashSet 为 Set 的实现类 使用
- import java.util.Set;
- import java.util.HashSet;
- public class Demo{
- public static void main(String args[]){
- HashSet<String> hashSet = new HashSet<String>();
- Set<String> set = hashSet;
- // 实现类向上转型为接口
- // 同理 Set<String> set = new HashSet<String>();
- // 添加元素
- set.add("a");
- set.add("b");
- set.add("c");
- set.add("d");
- // 获取集合中的元素长度
- int a = set.size();
- }
- }
Iterator 接口 迭代器对象
- Iterator -> Collection -> Set -> HashSet
- hasNext() next()
it.hasNext() 是否还有元素
it.next() 取出元素
- import java.util.Set;
- import java.util.HashSet;
- import java.util.Iterator;
- public class Demo{
- public static void main(String args[]){
- HashSet<String> hashSet = new HashSet<String>();
- Set<String> set = hashSet;
- // 实现类向上转型为接口
- // 同理 Set<String> set = new HashSet<String>();
- // 添加元素
- set.add("a");
- set.add("b");
- set.add("c");
- set.add("d");
- // 迭代器 iterator() 遍历整个 set
- // 通过迭代器取出集合中的对象
- Iterator<String> it = set.iterator<String>();
- while(it.hasNext){
- String s = it.next();
- System.out.println(s);
- }
- }
- }
Set 和 HashSet 为 Set 的实现类 使用
- Iterator -> Collection -> Set -> HashSet
- Iterator -> Collection -> List -> ArrayList
hasNext() 判断是否还有下一个元素
next() 取出这个元素, 然后把游标移动到下一位
Map 与 HashMap(Map 的实现类) 的使用
Map 为映射, 映射中的每个元素都有一个键对象和一个值对象, 在 Map 中键是不可以重复的, 值是可以重复的. 从 jdk1.2 有了这个类.
Map
- java.util
- Interface Map<K,V>
- K - the type of keys maintained by this map
- V - the type of mapped values
Map 是一种对象, 将 keys 键和 values 值建立起一种映射关系, 一个 map 不能有重复的 keys, 每个 key 只能唯一映射到一个值.
方法 | 说明 |
---|---|
put(K key, V value) | 向 map 当中添加一个键值对 |
get(Object key) | 获取值 |
- import java.util.Map;
- import java.util.HahMap;
- public class Demo{
- public static void main(String args[]){
- HashMap<String,String> hasMap = new HashMap<String,String>();
- Map<String,String> map = hasMap;
- // 向上转型
- // 同理 Map<Stirng,String> map = new HashMap<String,String>();
- // put() 用来存放键值对
- map.put("1","a");
- map.put("2","b");
- map.put("3","c");
- // 获取长度
- int i = map.size();
- // 获取键为 2 的值
- String s = map.get("2");
- }
- }
在 Map 中键是不可以重复的, 值是可以重复的. 如果 map 中添加一样的键, 那么新的值会覆盖老的值.
来源: http://www.jianshu.com/p/0d25fbc0d14a