java之集合Collection详解之3_privatecollection3

    // 创建学生对象
    Student s1 = new Student("林青霞", 27);
    Student s2 = new Student("风清扬", 30);
    Student s3 = new Student("令狐冲", 33);
    Student s4 = new Student("武鑫", 25);
    Student s5 = new Student("刘晓曲", 22);

    // 把学生添加到集合中
    c.add(s1);
    c.add(s2);
    c.add(s3);
    c.add(s4);
    c.add(s5);

    // 遍历
    Iterator it = c.iterator();
    while (it.hasNext()) {
        // System.out.println(it.next());
        Student s = (Student) it.next();
        System.out.println(s.getName() + "---" + s.getAge());
    }
}

}



package cn.itcast_03;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
* 问题1:能用while循环写这个程序,我能不能用for循环呢?
* 问题2:不要多次使用it.next()方法,因为每次使用都是访问一个对象。
*/
public class IteratorTest2 {
public static void main(String[] args) {
// 创建集合对象
Collection c = new ArrayList();

    // 创建学生对象
    Student s1 = new Student("林青霞", 27);
    Student s2 = new Student("风清扬", 30);
    Student s3 = new Student("令狐冲", 33);
    Student s4 = new Student("武鑫", 25);
    Student s5 = new Student("刘晓曲", 22);

    // 把学生添加到集合中
    c.add(s1);
    c.add(s2);
    c.add(s3);
    c.add(s4);
    c.add(s5);

    // 遍历
    Iterator it = c.iterator();
    while (it.hasNext()) {
        Student s = (Student) it.next();
        System.out.println(s.getName() + "---" + s.getAge());

        // NoSuchElementException 不要多次使用it.next()方法
        // System.out.println(((Student) it.next()).getName() + "---"
        // + ((Student) it.next()).getAge());

    }
    // System.out.println("----------------------------------");

    // for循环改写
    // for(Iterator it = c.iterator();it.hasNext();){
    // Student s = (Student) it.next();
    // System.out.println(s.getName() + "---" + s.getAge());
    // }
}

}



package cn.itcast_03;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
* Iterator iterator():迭代器,集合的专用遍历方式
* Object next():获取元素,并移动到下一个位置。
* NoSuchElementException:没有这样的元素,因为你已经找到最后了。
* boolean hasNext():如果仍有元素可以迭代,则返回 true。(
*/
public class IteratorDemo {
public static void main(String[] args) {
// 创建集合对象
Collection c = new ArrayList();

    // 创建并添加元素
    // String s = "hello";
    // c.add(s);
    c.add("hello");
    c.add("world");
    c.add("java");

    // Iterator iterator():迭代器,集合的专用遍历方式
    Iterator it = c.iterator(); // 实际返回的肯定是子类对象,这里是多态

    // Object obj = it.next();
    // System.out.println(obj);
    // System.out.println(it.next());
    // System.out.println(it.next());
    // System.out.println(it.next());
    // System.out.println(it.next());
    // 最后一个不应该写,所以,我们应该在每次获取前,如果有一个判断就好了
    // 判断是否有下一个元素,有就获取,没有就不搭理它

    // if (it.hasNext()) {
    // System.out.println(it.next());
    // }
    // if (it.hasNext()) {
    // System.out.println(it.next());
    // }
    // if (it.hasNext()) {
    // System.out.println(it.next());
    // }
    // if (it.hasNext()) {
    // System.out.println(it.next());
    // }
    // if (it.hasNext()) {
    // System.out.println(it.next());
    // }

    // 最终版代码
    while (it.hasNext()) {
        // System.out.println(it.next());
        String s = (String) it.next();
        System.out.println(s);
    }
}

}


迭代器源码如下:



public interface Inteator {
boolean hasNext();
Object next();
}

public interface Iterable {
Iterator iterator();
}

public interface Collection extends Iterable {

计算机网络

  • HTTP 缓存

  • 你知道 302 状态码是什么嘛?你平时浏览网页的过程中遇到过哪些 302 的场景?

  • HTTP 常用的请求方式,区别和用途?

  • HTTPS 是什么?具体流程

  • 三次握手和四次挥手

  • 你对 TCP 滑动窗口有了解嘛?

  • WebSocket与Ajax的区别

  • 了解 WebSocket 嘛?

  • HTTP 如何实现长连接?在什么时候会超时?

  • TCP 如何保证有效传输及拥塞控制原理。

  • TCP 协议怎么保证可靠的,UDP 为什么不可靠?

算法

  • 链表

  • 字符串

  • 数组问题

  • 二叉树

  • 排序算法

  • 二分查找

  • 动态规划

  • BFS

  • DFS

  • 回溯算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值