A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© IT人才 初级黑马   /  2018-11-20 15:16  /  902 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 IT人才 于 2018-11-20 17:14 编辑

Collection集合
集合框架介绍
目标
1会使用集合存储数据
2会遍历集合,把数据取出来
3掌握每种集合特性
C:/Users/Administrator/AppData/Local/YNote/data/qqABF3AFC7E7EB3E0C2825A19D8E6A47E1/ad0e99c73d2e4da1b38fad159b1a4239/clipboard.png
今日API
java.util.Collection<E>接口:
        // 成员方法(子类都会实现)
        boolean?add(E?e): 把给定的对象添加到当前集合中
        void?clear(): 清空集合中所有的元素
        boolean?remove(E?e): 把给定的对象在当前集合中删除
        boolean?contains(E?e): 判断当前集合中是否包含给定的对象
        boolean?isEmpty(): 判断当前集合是否为空(没有元素)
        int?size(): 返回集合中元素的个数
        Object[]?toArray(): 把集合中的元素,存储到数组中
        Iterator<E> iterator(): 获取集合的迭代器对象

java.util.Iterator<E>接口: 迭代器
        // 成员方法
        boolean hasNext(): 判断是否有下一个元素
        E next(): 获取下一个元素
        void remove(): 删除调用完next()指向的元素

java.util.Collections工具类
        // 静态方法
        static void shuffle(List<?> list): 随机打乱集合中元素的顺序

Collection接口方法  

boolean a=对象名.add()  添加元素
返回值true


boolean a=对象名.remove() 删除元素
集合中存在该元素 返回true
集合中不存在该元素  返回false
集合中有相同元素  只会删除第一个

boolean a=对象名.contains()  判断集合是否包含给定的对象
包含返回true
不包含返回false

boolean a=对象名.isEmpty()  判断当前集合是否为空
集合为空返回true
集合不为空返回false

对象名.size()  返回集合中的元素 个数

object[] arr=对象名.toArray  把集合中的元素存储到数组中

对象名.clear()   清空集合中所有元素


迭代器
Iterator<E>接口    通用的取出方式
对集合进行遍历
有两个常用方法
1.boolean hasNext()判断是否达到集合末尾,是返回false
2.E next()取出集合中的元素
迭代器使用步骤
1.使用集合中的iterator() 获取迭代器对象   Iterator<E> iterator():获取集合的迭代器对象
Iterator<E>   迭代器对象名= 集合对象.iterator();//固定写法
其中迭代器泛型E和集合泛型一致
2.使用 Iterator接口中的方法hasNext判断是否到达了集合末尾
boolean b=迭代器对象名.haxNext();
3.使用 Iterator接口中的方法next取出集合中的元素
迭代器对象名.next();

使用迭代器取出集合中元素是一个重复的过程  
利用while循环优化
while(迭代器对象名.hasNext){
String a=迭代器对象名.next();
sou()
}

迭代器的并发修改异常
在使用迭代器的过程中,修改了集合的长度(删除,添加元素),就会抛出并发修改异常.
解决办法:
1.在迭代的过程中不修改集合长度
2.了解就不了解了.
增强for循环
底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写
Collection<E>接口 extends Iterable<E>接口

增强for循环:
      用来遍历数组/集合
格式:
for(集合/数组中元素的数据类型  变量名 : 集合名/数组名){
sout(变量名);
}

泛型    (广泛未知的类型)
泛型的概述:
泛型可以看做是一个变量
泛型的使用:
集合不使用泛型默认object类型

好处:
1.避免类型转换的麻烦,存储数据什么类型,取出就是什么类型
2.把运行期异常,提升到了编译期
定义和使用含有泛型的方法
修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){
方法体
}

含有泛型的接口

C:/Users/Administrator/AppData/Local/YNote/data/qqABF3AFC7E7EB3E0C2825A19D8E6A47E1/472f122dd23c478db49d4ad10fc02599/clipboard.png

泛型通配符
?:代表任意的数据类型
使用方式:
     只能作为方法参数使用

泛型的限定:
C:/Users/Administrator/AppData/Local/YNote/data/qqABF3AFC7E7EB3E0C2825A19D8E6A47E1/58f999b5ee544b96b949825124c82080/clipboard.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马