在我們學(xué)習(xí)數(shù)組那節(jié)課里,我們學(xué)會(huì)了用for迭代數(shù)組里面的各個(gè)元素,這是很方便的,也是在之前的jdk的版本中沒(méi)有的功能。For語(yǔ)句除了循環(huán)和找數(shù)組之外還有,迭代集合類等等功能。這個(gè)for語(yǔ)句它拋棄了Iterator(迭代),使得遍歷集合類變得簡(jiǎn)單。
看看以前版本的Iterator是怎么做的:
public void testIterator() throws IOException {
List list = getList(); //在某處初始化這個(gè)list
for(Iterator i = list.iterator();i.hasNext();){
Object listElement = i.next();
System.out.println(listElement.toString());
}} 寫一個(gè)鏈表的迭代,需要這么多代碼。
而現(xiàn)在就不用了
public void testFor() {
List list = getList();
for (Object listElement : list) {
System.out.println(listElement.toString());
}}看看新版本的是不是簡(jiǎn)單多了。
實(shí)踐:
import java.io.IOException;
import java.io.PrintStream;
public class CustomObjectTester {
//一個(gè)繼承List的對(duì)象
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();
}}}還有一個(gè)類
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;
如有問(wèn)題請(qǐng)?jiān)L問(wèn)技術(shù)論壇