1、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
它们使用hashcode来区分是否重复,首先通过hashcode来判断是否重复,如果hashcode重复则判断equals是否相同则添加失败,不相同则添加到相同hashcode地方
2、List, Set, Map是否继承自Collection接口
List和set继承自Collection每个位置只有一个元素
map小型数据库拥有key----value键值对可以实现collection
3、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
这句话不对,set若对象值中equals相同则添加失败,会提前判断拥有相同的hashcode;
4、说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList存储性能较高,通过数组方式实现有序集合,查询与删除不容易;
LinkedList存储性能一般,通过链表形式存储,删除非常方便查找困难
Vector使用了sychronized方法(线程安全),所以在性能上比ArrayList要差些.
5、ArrayList和Vector的区别
1).同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程不安全的,不是同步的
2).数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
6、创建ArrayList实例化对象,添加10个以上的元素,在2号位插入一个元素,获得5号位元素,删除6号位元素,修改7号位的元素
import java.util.ArrayList;
import java.util.List;
/**
public class ArrayListTest {
public static void main(String[] args) {
List<String> sr = new ArrayList<String>();
//增加元素
sr.add("1");
sr.add("12");
sr.add("123");
sr.add("1234");
sr.add("12345");
sr.add("123456");
sr.add("1234567");
sr.add("12345678");
sr.add("123456789");
sr.add("1234567890");
//特定位置添加元素
sr.add(2,"添加了");
System.out.println(sr);
//获得特定元素
String t = sr.get(5);
System.out.println(t);
//删除额定元素
sr.remove(6);
System.out.println(sr);
//
sr.set(7,"修改了");
System.out.println(sr);
}
}
7、创建一个List集合的对象,添加几个数字,反转对象中元素的顺序;根据元素的自然顺序排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
-
collections工具集实现排序倒叙list
*/
public class ListTest {
public static void main(String[] args) {
List<Integer> sr = new ArrayList<Integer>();
sr.add(1);
sr.add(4);
sr.add(5);
sr.add(9);
sr.add(3);
sr.add(6);
Collections.sort(sr);
System.out.println(sr);
Collections.reverse(sr);
System.out.println(sr);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)