61、List和 Map区别?
(1)List是存储单列数据的集合,map是存储键和值这样的双列数据的集合
(2)List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。
62、List, Set, Map是否继承自Collection接口?
List,Set是,Map不是
63、List、Map、Set三个接口,存取元素时,各有什么特点?
(1)List与Set是存储单列数据的集合,Map是存储键和值这样的双列数据的集合
(2)List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个功共同的父接口,叫Collection。List里面的元素有顺序可重复,Set里面的元素无顺序不可重复。Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。
(3)List和set添加元素用add方法,Map添加元素用put方法
64、说出ArrayList,Vector, LinkedList的存储性能和特性
(1)ArrayList 是数组实现 它是线程不安全的。它每一次添加后都会增长50%长度。它在执行查找操作时效率比较高
(2)LinkedList 是链表实现它在执行修改或插入时效率比较高,是线程不安全的。
(3)Vector 它也是数组实现,它是线程安全的 它每一次添加后都会增长100%长度.无论是查找还是修改删除操作效率都比较低。
65、去掉一个Vector集合中重复的元素
Vector newVector = new Vector();
for (int i=0;i<vector.size();i++)
{
Object obj = vector.get(i);
if(!newVector.contains(obj);
newVector.add(obj);
}
还有一种简单的方式,HashSet set = new HashSet(vector);
66、Collection和 Collections的区别。
(1)Collection是集合类的上级接口,继承与他的接口主要有Set和List.
(2)Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
67、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?用 contains来区分是否有重复的对象。还是都不用?
(1)在比较时先调用hashCode 方法,如果不相同,证明不相等。如果相同,再调用equals 方法,如果equals 方法相同,证明相等,不相同,证明不相等。
(2)==:主要用在基本数据类型及引用
equals:主要是对象或对象引用的比较。
(3)集合中是否包含某一个元素用contains 来判断。
68、你所知道的集合类都有哪些?主要方法?
最常用的集合类是 List 和 Map。 List的具体实现包括 ArrayList和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List适用于按数值索引访问元的素情形。
Map 提供了一个更通用的元素存储方法。 Map集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。
List:add,remove, contains;map:put,remove,contains等
69、两个对象值相同(x.equals(y) == true),但却可有不同的hashcode,这句话对不对?
对;如果对象要保存在HashSet或HashMap中,它们的equals相等,那么,它们的hashcode值就必须相等。如果不是要保存在HashSet或HashMap,则与hashcode没有什么关系了,这时候hashcode不等是可以的,例如arrayList存储的对象就不用实现hashcode。
70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!
应该是没有针对问题的确切的答案,当前的add方法放入的是哪个对象,就调用哪个对象的compareTo方法,至于这个compareTo方法怎么做,就看当前这个对象的类中是如何编写这个方法的。