第一问:
List是接口,ArrayList实现了List接口。
第二问:
ArrayList实现了List接口,HashSet实现了Set接口,List和Set都是继承Collection接口。
ArrayList底层是动态数组,HashSet底层是哈希表。
ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,
ArrayList是有序可重复,HashSet是无序不可重复。