import java.util.List; import java.util.ArrayList; import java.util.LinkedList; public class TwoTypesOfLists { private static <E> void characterize(List<E> list, String name) { System.out.print(name + ": "); System.out.println(list); System.out.print(name + " implements the List interface: "); System.out.println(list instanceof List); System.out.print(name + " is an ArrayList: "); System.out.println(list instanceof ArrayList); System.out.print(name + " is a LinkedList: "); System.out.println(list instanceof LinkedList); System.out.println(); } public static void main(String args[]) { List<String> list1 = new ArrayList<String>(); List<String> list2 = new LinkedList<String>(); for (String arg : args) { list1.add(arg); list2.add(arg); } characterize(list1, "list1"); characterize(list2, "list2"); characterize(null, "null"); System.out.print("list1 and list2 have the same values: "); System.out.println(list1.equals(list2)); System.out.print("list1 and list2 are the same list: "); System.out.println(list1 == list2); } }