实训16 2018.04.16

迭代器

使用迭代器获取集合(Collection)对象:

  

import java.util.*;

public class TestClass {

    public static void main(String[] args){
        Collection<String> collection=new ArrayList<String>();
        collection.add("a");
        collection.add("b");

        for(Iterator<String> it=collection.iterator();it.hasNext();)
               {
            System.out.println(it.next());
        }
    }
}

  当it.hasNext()为false时,使用it.next()会抛出NoSuchElementException异常。

  在Collection中存储时如果不设置泛型,那么默认Object类型对象。当使用其中某个对象的(特有)方法时需要向下转型。

for-each可以对数组和Collection进行遍历,而不需要通过下标。遍历时不能像下标一样进行增删。

至此,有三种迭代集合或数组的方式:

  1. for(int i;i<arr.length;++i){}

  2. for each

  3.for(Iterator<String> it=collection.iterator();it.hasNext();)  {}

泛型 

Java中的泛型是“伪泛型”,不会被保存到.class文件中。泛型类似于一种规范。

  含有泛型的方法:public <T> T[] toArray(T[] a){}

  含有泛型的接口、类:interface Einter<String>{},class Eclass<E>{}。这里使用“E”表示始终不确定泛型的类型,直至被调用时才确定。当然也可以在定义时就给定泛型的类型,像定义的接口那样。

泛型通配符<?> 

public static void printCollection(Collection<?> list) {
    Iterator<?> it = list.iterator();
    while (it.hasNext()) {
        System.out.println(it.next());
    }
}

  使用泛型通配符类似于使用Object,只能使用Obeject类中的方法。

  其中,

    <? extends Parent>表示接收Parent及其子类的对象;

    <? super Children>表示接收Children及其父类(所有父类,直至Object)的对象。

原文地址:https://www.cnblogs.com/goxxiv/p/8856420.html

时间: 2024-11-10 19:49:46

实训16 2018.04.16的相关文章

实训41 2018.6.2

hibernate中的事务: 事务: 事务特性:(ACID) a 原子性 c 一致性 i 隔离性 d 持久性 什么是数据库ACID: http://www.jdon.com/concurrent/acid-database.html 事务并发问题: 1.脏读 2.不可重复度 3.幻|虚读 事务的隔离级别 读未提交- 123 读已提交 - 23 可重复读(mysql默认级别)-3 串行化 - 没有问题 如何在hibernate中指定数据库的隔离级别 在项目中如何管理事务 业务开始之前打开事务,业务

沈阳当年对学校承认了他和高岩的性关系:3星|《三联生活周刊》2018年16期

三联生活周刊·教授的权力:高校内的不平等关系(2018年16期) 本期主题是高校教师性侵学生的调查与思考. 总体评价3星,有参考价值. 以下是书中一些内容的摘抄,#号后面是kindle电子版中的页码: 1:自第二次世界大战以来,以色列制造的暗杀事件比任何西方国家都多.该国领导人甚至认为通过杀戮指定的目标保护其国家安全,危害无辜平民的生命是合情合理的.#52 2:旅游业难以聚集大量的财富,给其从业者带来的回报也有限,这就是为什么海南成了高消费的代名词,可当地人收入却普遍不高的原因.这也可以说是资源

Ubuntu 16.04/16.10安装 KDE Plasma

KDE目前的最新版本是Plasma 5.7(2016-10).Ubuntu默认的桌面环境是Unity,下面记录怎么在Ubuntu 16.04/16.10上安装KDE. Ubuntu 16.04/16.10安装KDE Plasma 添加源: 1 2 $ sudo add-apt-repository ppa:kubuntu-ppa/backports  # Ubuntu 16.04 # 如果使用16.10,不用添加第三方源 安装kubuntu-desktop: 1 2 3 $ sudo apt u

工程问题--ubuntu 14.04/16.04源码安装catvehicle

ubuntu 14.04/16.04源码安装catvehicle 系统环境: 1. Ubuntu 14.04 + ROS Indigo 或者 Ubuntu 16.04 + ROS kinetic(主要) 2. Gazebo模型已经下载完成. 未下载的可以参考:https://blog.csdn.net/qq_40213457/article/details/81021562 中的方法2. 安装步骤: 1. 建立工作空间: 1 cd ~ 2 mkdir -p catvehicle_ws/src 3

2018.11.16 浪在ACM 集训队第五次测试赛

2018.11.16 浪在ACM 集训队第五次测试赛 整理人:李继朋 Problem A : 参考博客:[1]朱远迪 Problem B : 参考博客: Problem C : 参考博客: Problem D : 参考博客:[1]朱远迪 Problem E : 参考博客: 原文地址:https://www.cnblogs.com/QLU-ACM/p/9977949.html

Ubuntu 14.04/16.04使用pbis集成AD域帐号登录

Ubuntu 14.04/16.04使用pbis集成AD域帐号登录: 注:pbis为开源软件,前身为likewise-open 下载pbis deb包略 dpkg -i pbis-open/* /opt/pbis/bin/config UserDomainPrefix ming (设置默认域名前缀,不设置用户名前需加domain\) /opt/pbis/bin/config AssumeDefaultDomain true /opt/pbis/bin/config LoginShellTempl

Android电子书项目实训【项目说明】【1】

概述: 本实训项目是本科教学中,Android课程实训的项目,旨在训练Android App访问服务器,获取服务器数据,解析,并呈现的流程.主要包含的功能有: 1.用户注册 2.登录 3.查看文档 4.下载电子书 5.阅读电子书 6.用户管理 设计说明: 该实训项目需要开发Android客户端和服务器端应用. 服务器端采用Struts2,直接使用JDBC访问MySQL数据库. 客户端使用xutils框架,访问action,获取JSON字符串. 开发环境: 服务器端采用MyEclipse,版本可以

【CC2530强化实训03】定时器间隔定时实现按键N连击

[CC2530强化实训03]定时器间隔定时实现按键N连击 [题目要求]      2018年全国职业院校技能大赛"物联网技术应用"国赛(高职组)中关于感知层开发的难度陡然增大,三个题目均在Zigbee协议栈下完成.其中第一个题目"仓库温湿度智能控制系统"考查了按键单击.双击和三连击.为了让大家更好的掌握按键的复杂处理思路,在这里通过一个具体的实训案例,讲述通过间隔定时实现按键N连击的基本思路.      在新大陆国赛设备的黑色Zigbee模块上,或者小蜜蜂制作的XM

&lt;实训|第三天&gt;Linux登录界面的修改以及Richard Stallman、自由软件运动

在写博客之前我想说两点: 承认一个错误,昨天写的实训第二天,我把redhat6.7写成了Linux6.7,感谢热心人士的指出! 昨天写的文章名字太长了,今天改善,内容感觉表述不全,希望各位谅解! 官方跟我说的是安装配置类的文章不能放进首页中,今天虽然有一点,但是主体部分还是对GUN.Linux和TCP/IP以及IP的认识. 期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教