集合是容器
数组作为容器有一些不方便之处,不利于我们对容器中的元素进行增删改
java给我们提供了里外一种容器–集合,能方便地操作容器中的元素
数组和集合的区别
数组长度固定,集合长度可变
数组之后同时存储同一种数据类型,集合可以存很多种
数组既能存基本数据类型,也能存引用数据类型,集合只能存引用数据类型
集合是一个集合框架,由很多种集合所构成
总体上分为单列集合和双列集合
一、集合框架 数据结构
数据结构:一种数据的存储方式
常见的数据结构有:栈 队列 数组 链表 树 哈希表
数据结构的特点
栈 : 先进后出 后进先出 (如枪的弹匣 一个出口,先进的在最下面)
队列: 先进先出 后进后出 (两个口 先从第一个口进的先从第二个口出)
数组:查询快(有索引) 增删慢(每次增删都需要重新排列元素索引,相当于把增删后的元素重新放到另一个数组中)
链表:查询慢(需要从第一个节点开始挨个查) 增删快 (如同锁链 互相环套 分为很多个节点 每个节点有自己的地址值,节点分为数值域和地址域,地址域中存放下一个节点的地址,如此相互嵌套)
二、单列集合Collection
Collection是单列集合的父类接口,我们需要学习其下的两个子接口list接口和set接口,
list接口下我们需要学习三个子实现类ArrayList,LinkedList,vector,
set接口下我们需要学习三个子实现类HashSet,LinkedHashSet,TreeSet
A、单列集合Collection通用方法
Collection c = new ArraryList();//多态
//add 往集合中添加元素
c.add();//有一个布尔类型的返回值,可以查看是否添加成功
//addAll 将两个集合中元素添加到一个集合中
Collection c = new ArraryList();
c.add("1");
c.add("2");
c.add("3");
Collection d = new ArraryList();
d.add("1");
d.add("a");
d.add("b");
c.addAll(d);//将d中元素全部加到c中,d不会少元素,c与d中重复元素也在
//删除数据
//1.remove
c.remove();//删除集合中指定元素,返回布尔类型,代表删除是否成功
//2.clear 清空集合中所有元素
c.clear();
//3.boolean removeAll(); 移除一个集合的元素(移除一个以上就是true),删除的是两个集合的交际元素,如果没有交际元素则返回false
c.removeAll(d); //返回布尔
System.out.println(c);//将c中与d的交集元素删除
System.out.println(d);//d集合不变
//判断功能
//1.contains
c.contains("1");//判断集合中有没有指定元素
//2.boolean containsAll(); 判断一个集合中是否包含另一个集合中的所有元素
//3.判断是否为空 isEmpty();
c.clear();
c.isEmpty();//true
//获取集合的长度
c.size();//获取集合的长度
//获取迭代器(遍历器)
迭代器是ArraryList的一个内部类,能直接访问外部类ArraryList的信息,所以能直接遍历
Iterator i = c.iterator();
Iterator对Collection进行迭代(遍历)的迭代器
boolean hasNext(); 如果仍有元素可以迭代,返回true
E next(); 返回迭代的下一个元素