如何将用户定义的类存储于Collection中

65 阅读1分钟

为了简单,类集并没有被限制为只能存储内置的对象。完全相反的是,类集的能力是它能存储任何类型的对象,包括你所创建的类的对象。例如,考虑下面的例子,在这个例子中使用LinkedList存储信箱地址。

// A simple mailing list example. 
import java.util.*; 
class Address { 
 private String name; 
 private String street; 
 private String city; 
 private String state; 
 private String code; 
 Address(String n, String s, String c, 
 String st, String cd) { 
 name = n; 
 street = s; 
 city = c; 
 state = st; 
 code = cd; 
 } 
 public String toString() { 
 return name + "\n" + street + "\n" + 
 city + " " + state + " " + code; 
 } 
} 
class MailList { 
 public static void main(String args[]) { 
 LinkedList ml = new LinkedList(); 
 
 // add elements to the linked list 
 ml.add(new Address("J.W. West", "11 Oak Ave", 
 "Urbana", "IL", "61801")); 
 ml.add(new Address("Ralph Baker", "1142 Maple Lane", 
 "Mahomet", "IL", "61853")); 
 ml.add(new Address("Tom Carlton", "867 Elm St", 
 "Champaign", "IL", "61820")); 
 Iterator itr = ml.iterator(); 
 while(itr.hasNext()) { 
 Object element = itr.next(); 
 System.out.println(element + "\n"); 
 } 
 System.out.println(); 
 } 
} 

程序的输出如下所示:

J.W. West 
11 Oak Ave 
Urbana IL 61801 
Ralph Baker 
1142 Maple Lane 
Mahomet IL 61853 
Tom Carlton 
867 Elm St 
Champaign IL 61820 

除了在类集中存储用户定义的类之外,关于上面程序的另一个重要的,值得注意的事情是它是非常短的。当考虑用50行代码建立一个能够实现存储,检索,以及处理信箱地址的链表时,类集框架的能力就变得显而易见了。正如大多数读者知道的那样,如果所有这些功能都必须用人工编写代码的话,程序将比现在的长好几倍。类集对许多不同的编程问题提供了现成的解决方案。