Java Reference
In-Depth Information
Example 2.43 NameSummarizer.java
1. import java.text.Collator;
2. import java.util.Arrays;
3. import java.util.Comparator;
4. public class NameSummarizer implements SummarizingStrategy{
5. private Comparator comparator = new NameComparator();
6.
7. public String summarize(Contact [] contactList){
8. StringBuffer product = new StringBuffer();
9. Arrays.sort(contactList, comparator);
10. for (int i = 0; i < contactList.length; i++){
11. product.append(contactList[i].getLastName());
12. product.append(COMMA);
13. product.append(SPACE);
14. product.append(contactList[i].getFirstName());
15. product.append(EOL_STRING);
16. }
17. return product.toString();
18. }
19.
20. public String [] makeSummarizedList(Contact [] contactList){
21. Arrays.sort(contactList, comparator);
22. String [] product = new String[contactList.length];
23. for (int i = 0; i < contactList.length; i++){
24. product[i] = contactList[i].getLastName() + COMMA + SPACE +
25. contactList[i].getFirstName() + EOL_STRING;
26. }
27. return product;
28. }
29.
30. private class NameComparator implements Comparator{
31. private Collator textComparator = Collator.getInstance();
32.
33. public int compare(Object o1, Object o2){
34. Contact c1, c2;
35. if ((o1 instanceof Contact) && (o2 instanceof Contact)){
36. c1 = (Contact)o1;
37. c2 = (Contact)o2;
38. int compareResult = textComparator.compare(c1.getLastName(),c2.getLastName());
39. if (compareResult == 0){
40. compareResult = textComparator.compare(c1.getFirstName(),c2.getFirstName());
41. }
42. return compareResult;
43. }
44. else return textComparator.compare(o1, o2);
45. }
46.
47. public boolean equals(Object o){
48. return textComparator.equals(o);
49. }
50. }
51. }
OrganizationSummarizer returns a summary with a Contact's organization, followed by their first and last
name. The comparator used to order the Contact objects returns entries with ascending organization, then
ascending last name.
Example 2.44 OrganizationSummarizer.java
1. import java.text.Collator;
2. import java.util.Arrays;
3. import java.util.Comparator;
4. public class OrganizationSummarizer implements SummarizingStrategy{
5. private Comparator comparator = new OrganizationComparator();
6.
7. public String summarize(Contact [] contactList){
8. StringBuffer product = new StringBuffer();
9. Arrays.sort(contactList, comparator);
10. for (int i = 0; i < contactList.length; i++){
11. product.append(contactList[i].getOrganization());
12. product.append(DELIMITER);
13. product.append(SPACE);
14. product.append(contactList[i].getFirstName());
15. product.append(SPACE);
16. product.append(contactList[i].getLastName());
17. product.append(EOL_STRING);
Search WWH ::




Custom Search