首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师 java Iterator foreach

2013-02-19 
黑马程序员 java Iterator foreach----------android培训、java培训、java学习型技术博客、期待与您交流! ---

黑马程序员 java Iterator foreach

----------android培训、java培训、java学习型技术博客、期待与您交流! ----------

foreach概述

for/in循环通常叫作增强的for或者foreach,它是Java5.0中一个极为方便的特性。

以下是编译器把该循环转换成普通的for循环之后,语句实际看起来的样子:

编译前:

import java.util.Iterator;class Link_List<T extends Comparable>{// 限制了这个泛型容器必须是放实现了Comparable的元素private Node headNode,tailNode;public Link_List(){// 构造函数headNode=tailNode=null;}public void add(T x){Node p=new Node(x);if(isEmpty()){headNode=tailNode=p;}else{tailNode.next=p;tailNode=p;}}public boolean isEmpty(){ // 是否为空链表if(headNode!=null){return false;}return true;}public void printList(){for(T x: headNode){System.out.print(x +"==");}}public Node head(){return headNode;}/** * Node */private class Node implements Iterable<T>{public T data;// 数据域public Node next;// 指针域public Node(T x){// Node构造函数this.data=x;}@Overridepublic Iterator<T> iterator() { //构造迭代器// TODO Auto-generated method stub//return null;return new Itr();}}/** * Itr */private class Itr implements Iterator<T>{//构造迭代器就是实现Iterator接口中的所有方法private Node cur=headNode;@Overridepublic boolean hasNext() {// TODO Auto-generated method stub//return false;return (cur!=null);}@Overridepublic T next() {// TODO Auto-generated method stub//return null;Node p=cur;cur=cur.next;return p.data;}@Overridepublic void remove() {// TODO Auto-generated method stub}}}public class CH_11_5 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubLink_List<Integer> ls1=new Link_List<>();for(int i=1; i<10; i++){ls1.add(i);}ls1.printList();double d1=sum(ls1);System.out.println("\n 累加和是:"+d1);}public static double sum(Link_List<? extends Number> ls){// 注意理解通配符的应用方法double sum=0;for(Number n: ls.head()){sum+=n.doubleValue();}return sum;}}



热点排行