Java 集合概述

1.集合概述

面向对象语言对事物的描述都是以对象的形式。可是要对多个对象操做就涉及要对对象进行存储。而java提供的Array存储又具备一些弊端(后续介绍),因此java集合就应运而生了。能够把多个对象的引用放入到一个容器中。那么存储多个对象能够有如下两种方式java

一.数组存储

Student[] =student =new Student[20];
Student[0]=new Student();
复制代码

以上可看出数组存储对象的弊端是长度不可变,一旦初始化长度指定为20 之后都是这个固定长度 仍是真实存储个数不可知的弊端,你没法获知数组内真正存了多少元素数组

二.集合存储

ArrayList arrayList= new ArrayList();
arrayList.add("AA");
arrayList.add("BB");
arrayList.size();
复制代码

以ArrayList为例 能够同size方法调用便可知道存放了多少元素bash

2.框架结构

以上为集合框架的结构图 主要分为两类Collection 和Map框架

一. Collection接口

  • Set:元素无序、不可重复的集合
  • List:元素有序,可重复的集合

由框架结构图咱们能够看出Set 和List是Collection的子接口 Collection做为父接口声明一些通用的方法 统用方法在idea等工具可查看 特殊的一些方法放在了子接口

Collection collection= new ArrayList();
collection.add("AA");//给集合添加子元素
collection.size();//返回集合元素个数
Collection col= Arrays.asList(1,2,3);
collection.addAll(col);//添加指定集合的全部元素
collection.contains("AA");//判断是否包含某个元素 (当添加自定义对象 自定义对象须要重写equals方法)

collection.contains("AA");//判断是否包含某个元素
collection.containsAll(col); //判断指定集合的全部元素是否都在该集合中
collection.retainAll(col); //取两个集合的交集
collection.remove("AA");//删除一个元素
collection.removeAll(col);//删除指定集合中全部元素
collection.equals(col);//判断两个集合中元素是否相同
collection.hashCode();//计算哈希值
collection.toArray();//将集合转化为数组
collection.add("BB");
collection.add("CC");
Iterator iterator= collection.iterator();//返回一个iterator接口实现类的对象
System.out.println(collection);
while (iterator.hasNext()){
    System.out.println(iterator.next());
}
复制代码

二. Map接口: 具备映射关系"key:value"的集合

  • Map中的key和value均可以是任何引用类型的数据
  • Map的key 用Set来存放 故不能重复
  • 经常使用String类做为Map的键
  • key 与value存在单向一对一关系

Map接口声明的方法如上图 方法功能与Collection相似由框架结构图可知具体实现有

  • TreeMap
  • HashMap
  • HashTable
  • LinkedHashMap
Map map =new HashMap();
map.put("a","AA");//新增
map.get("a");//获取
map.remove("a");//删除

复制代码

至此集合的大体框架结构已经讲完了,后续将实现类ArrayList HashMap等进行分析,欲听后续如何,且听下回分解!ide

相关文章
相关标签/搜索