集合知识点

1. 集合框架中包含哪些集合
Collection
List
ArrayList LinkedList Vector
Set
HashSet TreeSet
Map
HashMap TreeMap

2. List集合与Set集合的特点
List 有序并且允许重复
Set 无需并且不允许重复

3. ArrayList和LinkedList的优缺点
ArrayList : 因为有下标,遍历速度和修改速度快
插入元素和删除元素有可能移动大量元素, 效率较低
LinkedList: 在插入和删除元素的时候 是不需要移动元素,效率较高,遍历修改的时候必须通过前面元素的地址才能找到后面元素,效率较低

4. HashSet添加元素时,执行的流程(提示调用哪些方法以及调用流程)
当调用add方法的时候,add方法内部会自动的调用hashcode计算哈希吗,得到哈希吗之后,会通过哈希表进行比较查看是否有重复元素, 如果没有重复元素,则可以直接添加到集合, 如果有重复元素 则调用equals进行比较. equals方法结果如果为false,则添加到集合, 如果equals的结果为true则不添加

5. TreeSet 添加元素时需要注意什么?
当添加元素的时候,确定泛型中的类是否已经排序
排序有两种方式:

  1. 自然排序:
    (1) 自定义类实现Comparable
    (2) 重写compareTo方法,指定排序规则
    (3) 创建集合对象向集合中添加元素
  2. 定制排序:
    (1) 额外定义一个比较器的类实现Comparator接口
    (2) 重写compare方法,指定排序规则
    (3) 创建TreeSet集合对象的时候,在构造方法中添加比较器的对象

如果集合中添加的是自定义类型, 则必须实现排序方式中的一种,否则会包ClassCastException

6. 二叉树遍历方式
前序:中左右
中序:左中右
后序:左右中

7. Map集合的特点
Map<K.V> 每添加元素的时候 必须同时添加一对元素, 存在映射关系 , 叫做键值对
键:无需并且不允许重复, 值: 允许重复

8. 冒泡排序

int[] arr= {5,3,7,1,9};
  for(int i = 0; i<arr.length-1;i++){
     for(int j = 0; j<arr.length-i-1;j++){
            if(arr[j]>arr[j+1]){
               int temp = arr[j+1]
               arr[j+1] = arr[j];
               arr[j] = temp;
         }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值