2020.12.01,Collectionj集合,迭代器,增强for循环,泛型

Collection集合
|
集合和数组的区别:
1.数组长度固定不变
2.数组当中存储的事统一数据类型元素,可以存储基本数据类型,集合存储的都是对象,和基本数据类型的包装类
|
集合根据其存储结构分为两大类
1.单列集合:java.util.Collection
2.双列集合:java.util.Map
|
Collection接口
1.单列集合根接口
2.用于存储一些符合某种规则的元素
3.有两个子接口:List和Set接口
|
List接口:java.util
1.包含Vector集合,ArrayList集合,LinkedList集合
2.有序集合(存入和取出顺序一致)
3.允许重复元素
4.有索引,可以用for循环遍历
Set接口:java.util
1.包含TreeSet集合,HashSet集合,LinkedHashSet集合
2.TreeSet和HashSet集合(无序),LinkedHashSet集合有序
3.不允许重复元素
4.没有索引
|
Collection集合常用功能
定义:所有单列集合的父接口,定义一些所有子类的接口方法,增删改查
注意:如果<>中没有指定存入的类型,那就默认为Object类型
|
方法
Collection col=new ArrayList();先创建对象
1.col.add(E e)---->增加
2.col.clear()---->清空
3.col.remove(E e)---->删除某个元素
4.col.contains(E e)-->判断某一个元素是否存在
5.col.isEmpty(E e)---->判断集合是否为空
6.col.size()---->查看集合中有多少元素
7.Object[] b=col.toArray();---->把集合存储到数组当中
8.sout(集合名)--->表示输出集合中的数据,而不是地址值
||||||||||||
||||||||||||
||||||||||||
迭代器:java.util
作用:
遍历集合中的数据
|
使用步骤
1.获得迭代器:Iterator iterator=collection.iterator()
2.使用iterator中的hasNext()方法判断下一个元素是否有值
3.使用iterator中next()方法取出下一个元素(赋复制)
注意::如果没有元素了一人取出就会抛除异常java.util.NoSuchElementException没有此元素,运行时错误。
|
迭代概念
具体实现:每次取得元素之前,首先判断集合当中有没有元素。如果有就取出元素,然后继续判断。直到取出集合中所有元素
|
迭代方法
Iterator iterator=collection.iterator();
1.iterator.hasNext()--->判断下一个是否有元素
2.iterator.next()---->取出下一个元素
|
迭代器使用原理
1.调用iterator接口当中的方法之前迭代器索引位置在第一个元素之前。不指向任何元素
2.当第一次调用迭代器next方法迭代器索引回向后移动一位,指向第一个元素并将该元素返回。如此循环直到输出所有的值就终止。强硬取值就会报错。
注意:Iterator是跟着集合里面走的,必须和集合里面的一样,不然就会报错。
||||||||||
||||||||||
||||||||||
增强For循环:JDK1.5之后才有
格式:for(元素数据类型 变量名:集合或者数组){};
作用:遍历集合或者数组
|||||||||||||
|||||||||||||
|||||||||||||
泛型
概述:可以在类或者方法中加入未知的数据类型,一般难创建的时候将未知数的数据类型当没有指定的泛型时,默认类型为Object类,指定存入和取出元素类型
|
适用泛型好处
1.使用泛型之后只能存入指定类型数据,取安全
2.把运行期异常转换为编译器异常
|
泛型的定义和使用
泛型可以用来将数据类型应用到不同的类,方法和接口当中,可以将数据类型当做参数传递,因为我们集合框架体系中大量使用泛型
|
定义和使用泛型泛型的类:创建对象的时候传入数据类型
格式:修饰符 class 类名<代表泛型的变量>{};
创建对象的时候传入泛型的数据类型,然后类里面的方法和变量使用到泛型的就是改数据类型,不穿就是Object类型【private 泛型数据类型 变量名;】,产生的set和get方法,通过不同的泛型数据类型,set可以赋不同的值,更多变。
|
定义和使用泛型的方法:使用方法的时候直接传入具体数值
格式:修饰符 <泛型声明> 返回值 方法名(泛型参数){}
使用:调用的时候声明泛型的数据类型,出入具体值,传入什么样的实参,泛型就是声明数据类型
|
定义使用泛型的接口
格式:修饰符 interface 接口名<泛型>{}
调用:
1.在被子类实现的时候填入具体数据类型
2.创建子类对象·的时候再传入具体的值
|
泛型能不能被继承
1.不能被继承
2.数据类型有继承关系,但是不能再泛型当中实现继承

原文地址:https://www.cnblogs.com/tushao/p/14070477.html