2021-06-19复习java Collection集合 Iterator接口_迭代器 增强for循环 泛型
2021-06-19复习java
- Collection集合
- Iterator接口_迭代器
- 增强for循环
- 泛型
Collection集合
java.util.coLlection接口
所有单列集合的最顶层的接口,里边定义了所有单列集合共性的方法,如图04-10-1,任意的单列集合都可以使用collection接口中的方法
共性的方法:
- public boolean add(E e):把给定的对象添加到当前集合中。
- public void clearo:清空集合中所有的元素。
- public boolean remove(E e):把给定的对象在当前集合中删除。
- Tpublic boolean contains(E e):判断当前集合中是否包含给定的对象。
- public boolean isEmpty():判断当前集合是否为空。
- public int size():返回集合中元素的个数。
- public object[] toArray():把集合中的元素,存储到数组中。
add方法:
collection<String> col1. = new ArrayList<>();
system.out.println(col1);//重写了toString方法
/*
public boolean add(E e):把给定的对象添加到当前集合中。返回值是一个boolean值,一般都返回true,所以可以不用接牧*/
boolean b1 = coll.add(“张三“);
system.out.println("b1 :"+b1);//b1;truesystem.out.println(coll);//[张三]
col1.add("李四");
coll.add(”赵六");coll.add("田七");
system.out.print1n(coll);//[张三,李四,赵六,田女]
remove方法:
/*public boolean remove(E e):把给定的对象在当前集合中删除。返回值是一个boolean值,集合中存在元素,删除元素,返回true
集合中不存在元素,删除失败,返回false*/
boolean b2 = coll.remove("赵六");
system.out.println("b2:"+b2);//b2:true
contains方法:
/*
public boolean contains(E e):判断当前集合中是否包含给定的对象。包含返回true
不包含返回false*/
boolean b4 = coll.contains(“李四");
system.out.print1n( "b4 : "+b4);//b4:true
boolean b5 = col1.contains("赵四");
system.out.println( "b5: "+b5);//b5 ;false
isEmpty()方法:
///public boolean isEmpty( ):判断当前集合是否为空。集合为空返回true ,集合不为空返回false
boolean b6 = col1.isEmpty();
system.out.println("b6:"+b6) ;//b6:false
size、toArray、clear方法:
// public int size():返回集合中元素的个数。
int size = coll.size();
system.out.println( "size: "+size);//size: 3
// public 0bject[] toArray():把集合中的元素,存储到数组中。
0bject[] arr = coll.toArray();for (int i = e; i < arr.length; i++){system.out.println(arr[i]);}
//public void clear():清空集合中所有的元素。但是不删除集合,集合还存在coll.clear();System.out.println(coll);//[]:此时集合已经被清空,没有任何元素
注意:以上这些方法都是共性的,以下这些集合都可以使用上面的方法
Vector集合、ArrayList集合、LinkedList集合、TreeSet集合、HashSet集合、LinkedHashSet集合
Iterator接口_迭代器
java.util.Iterator接口:迭代器(对集合进行遍历)
有两个常用的方法:
- boolean hasNext() 如果仍有元素可以迭代,则返回true。
判断集合中还有没有下一个元素,有就返回true,没有就返回false - E next()返回迭代的下一个元素。取出集合中的下一个元素
- Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊
- collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象
- Iterator iterator()返回在此collection 的元素上进行迭代的迭代器。
迭代器的使用步骤(重点):
- 1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
- 2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
- 3.使用Iterator接口中的方法next取出集合中的下一个元素
public static void main(string[] args) {//创建一个集合对象
collection<string> coll = new ArrayList<>();
//往集合中添加元素
coll.add("姚明");
coll.add("科比");
col1.add("麦迪");
coll.add("詹姆斯");
coll.add("艾弗森");
/*
1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)注意:
Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
*/
//多态接口 实现类对象
Iterator<string> it = coll.iterator();
/*发现使用迭代器取出集合中元素的代码,是一个重复的过程所以我们可以使用循环优化
不知道集合中有多少元素,使用whiLe循环循环结束的条件, hasNext方法返回false */
while(it.hasNext()){string e = it.nextsystem.out.println(e);
}
还可以使用for循环遍历,不过常用while循环
for( Iterator<String> it2 = coll.iterator();it2.hasNext();){string e = it2.next();system.out.println(e) ;
}
增强for循环
- 增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性
- collection extends Iterable:所有的单列集合都可以使用增强for
- public interface Iterable实现这个接口允许对象成为“foreach”语句的目标。
- 增强for循环:用来遍历集合和数组
格式:
for(集合/数组的数据类型 变量名:集合名/数组名){ISystem.out.println(变量名);}
演示增强for循环遍历(针对于数组、集合):
public static void main(String[]args){collection1();collection2();
}
//增强for循环遍历数组
private static void collection1(){int[] arr = {1,2,3,4,5,6}for(int i :arr){System.out.println(i)}
}
//增强for循环遍历集合
private static void collection2(){ArrayList<String> list = new ArrayList<>;list.add("aaa")list.add("bbb")for(String li:list){System.out.println(li);}
}
泛型
使用泛型的好处就是可以把程序的报错从运行期的异常提升至编译期就会提示异常。
- 定义一个含有泛型的类,模拟Arraylist集合
- 泛型是一个未知的数据类型,当我们不确定什么什么数据类型的时候,可以使用泛型泛型可以接收任意的数据类型,可以使用Integer,String
, student. . . - 创建对象的时候确定泛型的数据类型
//E:表示泛型
public class Genericclass<E>{private E name;public E getName() {return name;}public void setName(E name) {this.name = name;}
}
- 定义含有泛型的方法: 泛型定义在方法的修饰符和返回值类型之间
格式:
修饰符<泛型>返回值类型方法名(参数列表(使用泛型)){方法体;
}
- 含有泛型的方法,在调用方法的时候确定泛型的数据类型传递什么类型的参数,泛型就是什么类型
public class GenericMethod {//定义一个含有泛型的方法
public <M> void methode1(M m){system.out.println(m);
}
//定义一个含有泛型的静态方法
public static <s> void method02(S s){system.out.println(s);
}
2021-06-19复习java Collection集合 Iterator接口_迭代器 增强for循环 泛型相关推荐
- Java Collection集合 --迭代器 -- 泛型 --List接口案例
案例1 需求:具体要求如下:学生练习 1.定义一个学生类Student,包含三个属性姓名.年龄.性别, 私有成员变量,生成无参,有参构造方法,生成get/set方法并重写toString()方法. 2 ...
- 小东吖 之 java Collection集合和迭代器
一.Collection集合 数组: 存储同一种数据类型的集合容器. 数组的特点: 1. 只能存储相同数据类型的数据 2. 一旦给定了长度,数组长度被固定了,不能改变 3. 数组中的元素与元素之间的内 ...
- Java Collection集合的三种遍历方式
文章目录 Collection遍历方式 迭代器遍历 foreach遍历 Lambda遍历 Collection遍历方式 Collection集合遍历的方式有三种: 迭代器 foreach/增强for循 ...
- Java基础—集合2Set接口和Map接口
第一讲 Set 一 概述 Set:1. 元素存储无下标,所以元素是无序(存入和取出的顺序不一定一致) 2. 元素不可以重复 |--HashSet:底层数据结构是哈希表.线程不同步. 保证元素唯一性的原 ...
- 【小白学Java】D20》》》Iterator迭代器 增强for循环
[友情链接]---–->Java中的各种集合大汇总,学习整理 [友情链接]----–> Collection集合 [友情链接]----–> ArrayList集合及其常用功能 [友情 ...
- java网课|Iterator接口
P242 Iterator接口介绍(迭代器) 之前学了有很多种集合 存储的元素不太一样 取出元素的方式也不太一样 =迭代器:一种通用的用来取出元素的方法 迭代器方法 Boolean hasNext() ...
- JavaSE Collections类 , Iterator迭代器 , 增强for循环
Collections 它是集合的工具类,为集合体系扩展了一些其他的方法.类中都是静态的方法,可以使用类名直接调用. 可变参数 在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类 ...
- java增强型for报错_Java基础——增强for循环
java1.5版本引入了一个增强for循环,基本原理和for循环类似. 语法声明:for(表达式:条件表达式) 举例:for (String str : set) 解释:set代表set集合,str代 ...
- 第三次学JAVA再学不好就吃翔(part84)--增强for循环
学习笔记,仅供参考,有错必纠 文章目录 增强for循环 增强for循环 增强for循环概述 增强for循环可以简化数组和Collection集合遍历. 格式 for(元素数据类型 变量 : 数组或者C ...
最新文章
- HALCON表面划痕检测
- 2020-12-28 Matlab自动化控制-Adrc自抗扰控制
- 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 5.)(python/c/c++版)(笔记)Lexer词法分析程序
- BZOJ 4802: 欧拉函数(大数因数分解算法 Pollard_rho 和素数测试算法 Miller_Rabin)
- 分析Linux内核5.0系统调用处理过程
- 流行歌单片机c语言编程,单片机6首音乐播放的proteus仿真电路及C语言程序设计...
- 《SaaS架构设计》试读:前 言
- java comp_java:comp / env /做什么?
- Dynamic Scoping (动态范围)
- Python实现大文本文件分割成多个小文件
- 批量删除新浪微博的关注
- 4步彻底关闭win10的自动更新功能
- 苹果手机忘记Appid怎么办
- 如何用代码让钉钉报警-开发公司内部的钉钉报警系统
- 3d游戏建模|3D电影、游戏角色是怎么制作的?
- 【线程、锁】什么是AQS(锁分类:自旋锁、共享锁、独占锁、读写锁)
- Python基础练习——水仙花数、成绩分级
- 多个数字组成一个最大数
- 戴尔计算机的硬件配置情况,戴尔g3怎么查电脑配置
- 计算机应用基础意见建议,《计算机应用基础》教学建议
热门文章
- vSphere是什么,你了解么?
- 测试分享之抽奖【一】
- java 时间戳格式
- 5-(4-硝基苯甲酰氧基)苯基-10,15,20-三-(4-溴苯基)卟啉(TPP-NO2);氯代四邻氯苯基卟啉铁TCPPFeCl;SnO2/TAPP复合薄膜齐岳供应
- 北方苍鹰算法(NGO)优化的BP神经网络预测,NGO-BP回归预测
- mysql长轮询_【系列一】ajax长轮询、轮询应用和介绍
- pppoe拨号后ubuntu任务栏无线网络图标消失解决方法
- 为什么会有0欧电阻这种东西?
- vivo y10参数配置
- 安卓全面屏,水滴屏,刘海屏动态显示隐藏状态栏,导航栏