Advertisement
Guest User

Untitled

a guest
Nov 17th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. package demo;
  2. // Creates lists of employees in a company, grouping them by category.
  3. // Then creates a list of all employees from the aforementioned lists.
  4. // Also creates a list of rather arbitrary objects.
  5. // Prints these lists out.
  6. // Demonstrates the use of wildcards in Java.
  7.  
  8. import java.util.ArrayList;
  9.  
  10. public class ManageEmployees {
  11. public static void main(String[] args) {
  12. ArrayList<WebDeveloper> webDevs = new ArrayList<>();
  13. webDevs.add(new WebDeveloper("Sir Timothy Berners-Lee"));
  14. webDevs.add(new WebDeveloper("Brendan Eich"));
  15. ArrayList<SystemsProgrammer> sysDevs = new ArrayList<>();
  16. sysDevs.add(new SystemsProgrammer("Grace Hopper"));
  17. sysDevs.add(new SystemsProgrammer("Donald Knuth"));
  18. ArrayList<Designer> designers = new ArrayList<>();
  19. designers.add(new Designer("Roberta Williams"));
  20. designers.add(new Designer("Sid Meier"));
  21. ArrayList<Theorist> theorists = new ArrayList<>();
  22. theorists.add(new Theorist("Shafrira Goldwasser"));
  23. theorists.add(new Theorist("Stephen Cook"));
  24. ArrayList<Programmer> devs = new ArrayList<>();
  25. devs.add(new Programmer("Richard Stallman"));
  26. devs.add(new Programmer("Bill Joy"));
  27. ArrayList<Object> objects = new ArrayList<>();
  28. objects.add(42);
  29. objects.add("Hello");
  30. objects.add(new Programmer("Linda Liukas"));
  31.  
  32. System.out.println("Web devs: "); printNames(webDevs);
  33. System.out.println("Sys devs: "); printNames(sysDevs);
  34. System.out.println("Designers: "); printNames(designers);
  35. System.out.println("Theorists: "); printNames(theorists);
  36. System.out.println("General devs: "); printNames(devs);
  37.  
  38. ArrayList<Employee> employees = new ArrayList<>();
  39. addElements(webDevs, employees);
  40. addElements(sysDevs, employees);
  41. addElements(designers, employees);
  42. addElements(theorists, employees);
  43. addElements(devs, employees);
  44.  
  45. System.out.println("All employees: "); printNames(employees);
  46.  
  47. System.out.println("Web devs (using toString):"); printAll(webDevs);
  48. System.out.println("objects (using toString):"); printAll(objects);
  49.  
  50. System.out.println("Among web developers: ");
  51. printFavoriteLanguages(webDevs);
  52.  
  53. addElements(webDevs, devs);
  54. addElements(sysDevs, devs);
  55.  
  56. System.out.println("Among all developers: ");
  57. printFavoriteLanguages(devs);
  58. }
  59.  
  60. // INSERT THE MISSING METHODS HERE ...
  61. public static <E extends Object> void printNames(ArrayList<E> inputArray) {
  62. for (E element : inputArray)
  63. System.out.print(element);
  64. System.out.println();
  65. }
  66.  
  67. public static <E> void addElements (ArrayList<E> inputArray1, ArrayList<? super E> inputArray2) {
  68. for (int i = 0 ; i < inputArray1.size(); i++) {
  69. inputArray2.add((E) inputArray1.get(i));
  70. }
  71. }
  72.  
  73. public static <E> void printAll(ArrayList<E> inputArray) {
  74. for (int i = 0 ; i < inputArray.size() - 1; i++) {
  75. System.out.println(inputArray);
  76. }
  77. }
  78.  
  79. public static <E extends Programmer> void printFavoriteLanguages(ArrayList<E> inputArray) {
  80. for (int i = 0 ; i < inputArray.size(); i++) {
  81. E Employee = inputArray.get(i);
  82. String Fl = Employee.favoriteLanguage();
  83. System.out.println(Fl);
  84. }
  85. }
  86. }
  87.  
  88. class Employee {
  89. private String name;
  90. public Employee (String name) {
  91. this.name = name;
  92. }
  93. public String name() {
  94. return name;
  95. }
  96. }
  97.  
  98. class Programmer extends Employee {
  99. public Programmer(String name) {
  100. super(name);
  101. }
  102. public String favoriteLanguage() {
  103. return "Java";
  104. }
  105. }
  106.  
  107. class WebDeveloper extends Programmer {
  108. public WebDeveloper(String name) {
  109. super(name);
  110. }
  111. public String favoriteLanguage() {
  112. return "JavaScript";
  113. }
  114. }
  115.  
  116. class SystemsProgrammer extends Programmer {
  117. public SystemsProgrammer(String name) {
  118. super(name);
  119. }
  120. public String favoriteLanguage() {
  121. return "C";
  122. }
  123. }
  124.  
  125. class Theorist extends Employee {
  126. public Theorist(String name) {
  127. super(name);
  128. }
  129. }
  130.  
  131. class Designer extends Employee {
  132. public Designer(String name) {
  133. super(name);
  134. }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement