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);
}
}