WEB开发网
开发学院软件开发Java 关于 Java Collections API 您不知道的 5 件事,第... 阅读

关于 Java Collections API 您不知道的 5 件事,第 2 部分:注意可变对象

 2010-06-23 00:00:00 来源:WEB开发网   
核心提示: 这看起来像是一个没有意义的学术上的争论,但是它也有其自身的价值,关于 Java Collections API 您不知道的 5 件事,第 2 部分:注意可变对象(3),他们(包括相当一部分 Java 开发人员)不知道并不是所有 Iterable 都来自集合,Iterable 可以创建 Itera

这看起来像是一个没有意义的学术上的争论,但是它也有其自身的价值。

他们(包括相当一部分 Java 开发人员)不知道并不是所有 Iterable 都来自集合。Iterable 可以创建 Iterator,该迭代器知道如何凭空制造下一个元素,而不是从预先存在的 Collection 中盲目地处理:

清单 2. 迭代文件

// FileUtils.java 
import java.io.*; 
import java.util.*; 
 
public class FileUtils 
{ 
  public static Iterable<String> readlines(String filename) 
   throws IOException 
  { 
   final FileReader fr = new FileReader(filename); 
   final BufferedReader br = new BufferedReader(fr); 
   
   return new Iterable<String>() { 
   public <code>Iterator</code><String> iterator() { 
    return new <code>Iterator</code><String>() { 
    public boolean hasNext() { 
     return line != null; 
    } 
    public String next() { 
     String retval = line; 
     line = getLine(); 
     return retval; 
    } 
    public void remove() { 
     throw new UnsupportedOperationException(); 
    } 
    String getLine() { 
     String line = null; 
     try { 
     line = br.readLine(); 
     } 
     catch (IOException ioEx) { 
     line = null; 
     } 
     return line; 
    } 
    String line = getLine(); 
    }; 
   } 
   }; 
  } 
} 
 
//DumpApp.java 
import java.util.*; 
 
public class DumpApp 
{ 
  public static void main(String[] args) 
    throws Exception 
  { 
    for (String line : FileUtils.readlines(args[0])) 
      System.out.println(line); 
  } 
} 

上一页  1 2 3 4 5  下一页

Tags:关于 Java Collections

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接