划词......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

   在我们学习数组那节课里,我们学会了用for迭代数组里面的各个元素,这是很方便的,也是在之前的jdk的版本中没有的功能。For语句除了循环和找数组之外还有,迭代集合类等等功能。这个for语句它抛弃了Iterator(迭代),使得遍历集合类变得简单。

     看看以前版本的Iterator是怎么做的:

     public void testIterator() throws IOException {

            List list = getList(); //在某处初始化这个list

            for(Iterator i = list.iterator();i.hasNext();){

            Object listElement = i.next();

            System.out.println(listElement.toString());

}} 写一个链表的迭代,需要这么多代码。

而现在就不用了

public void testFor() {

        List list = getList();

        for (Object listElement : list) {

        System.out.println(listElement.toString());

}}看看新版本的是不是简单多了。

实践:

import java.io.IOException;

import java.io.PrintStream;

 

public class CustomObjectTester {

 //一个继承List的对象

 private GuitarManufacturerList manufacturers;

 public CustomObjectTester() {

    this.manufacturers = new GuitarManufacturerList();

 }

 public void testListExtension(PrintStream out) throws IOException {

    //添加一些字符串

    manufacturers.add("Epiphone Guitars");

    manufacturers.add("Gibson Guitars");

    // for迭代

    for (String manufacturer : manufacturers) {

      out.println(manufacturer);

    }}

 public static void main(String[] args) {

    try {

      CustomObjectTester tester = new CustomObjectTester();

      tester.testListExtension(System.out);

    } catch (Exception e) {

      e.printStackTrace();

    }}}还有一个类

import java.util.LinkedList;

@SuppressWarnings("serial")

public class GuitarManufacturerList extends LinkedList<String> {

 public GuitarManufacturerList() {

    super();

 }

 public boolean add(String manufacturer) {

    if (manufacturer.indexOf("Guitars") == -1) {

      return false;

    } else {

      super.add(manufacturer);

      return true;

    }}}几个此例子打包下载

如有问题请访问技术论坛