2、 集合框架包括哪些内容?集合和数组有什么区别?
集合的框架包括1、接口2、实现类3、算法
区别:1、数组创建后长度不可改变,集合长度随元素添加或者删除有所改变
2、数组元素是基本数据类型,也可以是引用类型。但是集合元素必须是引用类型
3、集合中封装了大量算法,使用集合操作数据更方便
3、 List三个实现类,ArrayList、Vector、LinkedList各自有什么特点?
ArrayList实现类:底层由数组实现,遍历和追加元素速度快,但中间插入和删除元素速度慢,线程不安全
Vector实现类:类似于ArrayList底层也由数组实现,不同的是线程安全。
LinkedList采用双向键表实现,每个元素除了存放数据外,还要存放上一个和下一个元素的地址,中间插入元素速度快,但遍历速度慢。
4、 List集合什么特点?Set集合有什么特点?Map集合有什么特点?
List线性,元素可以重复
Set元素不可重复,重复会覆盖
Map一个元素包含两个对象,键对象和值对象。并且不能重复
5、 Map集合如何添加元素?Map集合如何根据键得到值?
Map<Integer,Product> map=new HashMap< Integer,Product >();
Map.put(1,new Product(1,”燕窝”,6));//添加元素
Product p=map.get(2);//得到元素
6、 Map集合如何遍历?(熟练掌握)
Map<Integer>set=map.keySet();
For(Integer k:set){
Product p1=map.get(k);
System.out.println(“键”+k+“值”+p1);
}
7、 集合遍历的方式有哪些?(熟练掌握)
1得到迭代器(都行)2.for循环(只适用list集合)3.foreach循环
.
8、 如何给List集合排序?//list的集合排序
Collections.sort(list,new Comparator<Product>() {
@Override
public int compare(Product o1, Product o2) {
// 按属性排序o1,o2为对象,默认是升序
return o1.getCode()-o2.getCode();
//降序排序o2.getCode()-o1.getCode();
}
});
for(Product p:list){
System.out.println(p);