正在加载图片...
Thinking in Java 3Edition 你还需要,它就不会消失:一旦你用完了,垃圾回收器负责帮你收拾干 再附带说一下, flayorset()随机选择 flavors的时候,会检查那个 flavor以前是不是没被选中过。这是由do循环做的。它不断的作随机选 择,直到找到一个在 picked数组中还没有的。(当然,也可以用“比较 String”的方式来检查随机选出的 flavor是不是已经在 results数组中 了。)如果成功,它会添加这条记录,然后寻找下一个(递增ⅱ)。 main()会打印出20套 flavors,这样你就能看到,每次 flayorset() 都是随机选择 flavors的。如果把输出导到文件你就能看得更清楚。只是 记着看文件的时候,你只是想挑一个而不是真的想吃冰激凌。 Arrays类 java.util里面有一个 Arrays类,它包括了一组可用于数组的 static 方法,这些方法都是一些实用工具。其中有四个基本方法:用来比较两个 数组是否相等的 equals():用来填充数组的f():用来对数组进行 排序的sort():以及用于在一个已排序的数组中查找元素的 binarysearch()。所有这些方法都对 primitive和 Object进行了重 载。此外还有一个 aslist()方法,它接受一个数组,然后把它转成一个 List容器。后面你会学到。 虽然Aays还是有用的,但它的功能并不完整。举例来说,如果它能让 我们不用写for循环就能直接打印数组,那就好了。此外,正如你所看到 的,fl()只能用一个值填数组。所以,如果如果你想把随机生成的数字 填进数组的话,f)是无能为力的 因此为 Arrays类提供一些额外的功能还是有意义的。为方便起鉴,我把 它放到 package com. bruceeckelutil里。它可以打印任何类型的 数组;并且用“你定义的 generator对象生成的”值或对象填充一个数 组 由于要为各种 primitive以及 Object服务,程序里有大量的几乎是重复 的代码。3比如,next()必须根据不同的情况返回不同的类型,所以每 种类型都需要一个“ generator”接口。 //: com: bruceeckel: util: Generator. java package com. bruceeckel util; ublic interface Generator object next( )i)///: C++的程序员会觉得,如果能用默认参数和模板的话,可以少写很多代码。而 Python的程序员则会认 为,这个类库本身就是多余的 第7页共106页 www.wgqqh.com/shhgs/tij.html emailshhgsasohu.comThinking in Java 3rd Edition 第 7 页 共 106 页 www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.com 你还需要,它就不会消失;一旦你用完了,垃圾回收器负责帮你收拾干 净。 再附带说一下,flavorSet( )随机选择 flavors 的时候,会检查那个 flavor 以前是不是没被选中过。这是由 do 循环做的。它不断的作随机选 择,直到找到一个在 picked 数组中还没有的。(当然,也可以用“比较 String”的方式来检查随机选出的 flavor 是不是已经在 results 数组中 了。)如果成功,它会添加这条记录,然后寻找下一个(递增 i)。 main( )会打印出 20 套 flavors,这样你就能看到,每次 flavorSet( ) 都是随机选择 flavors 的。如果把输出导到文件你就能看得更清楚。只是 记着看文件的时候,你只是想挑一个而不是真的想吃冰激凌。 Arrays 类 java.util 里面有一个 Arrays 类,它包括了一组可用于数组的 static 方法,这些方法都是一些实用工具。其中有四个基本方法:用来比较两个 数组是否相等的 equals( );用来填充数组的 fill( );用来对数组进行 排序的 sort( );以及用于在一个已排序的数组中查找元素的 binarySearch( )。所有这些方法都对 primitive 和 Object 进行了重 载。此外还有一个 asList( )方法,它接受一个数组,然后把它转成一个 List 容器。后面你会学到。 虽然 Arrays 还是有用的,但它的功能并不完整。举例来说,如果它能让 我们不用写 for 循环就能直接打印数组,那就好了。此外,正如你所看到 的,fill( )只能用一个值填数组。所以,如果如果你想把随机生成的数字 填进数组的话,fill( )是无能为力的。 因此为 Arrays 类提供一些额外的功能还是有意义的。为方便起鉴,我把 它放到 package com.bruceeckel.util 里。它可以打印任何类型的 数组;并且用“你定义的 generator 对象生成的”值或对象填充一个数 组。 由于要为各种 primitive 以及 Object 服务,程序里有大量的几乎是重复 的代码。3比如,next( )必须根据不同的情况返回不同的类型,所以每 种类型都需要一个“generator” 接口。 //: com:bruceeckel:util:Generator.java package com.bruceeckel.util; public interface Generator { Object next( ); } ///:~ 3 C++的程序员会觉得,如果能用默认参数和模板的话,可以少写很多代码。而 Python 的程序员则会认 为,这个类库本身就是多余的
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有