实训16 2018.04.16

Posted goxxiv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实训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)的对象。

 

以上是关于实训16 2018.04.16的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE实训day03总结

逆袭之旅DAY16.东软实训.Oracle.索引

实训第三天

tkinter 05 Scale 尺度

tkinter 06 Checkbutton 勾选项

tkinter 03 Listbox 列表部件