集合相关

来源:互联网 发布:windows 点阵字体丢失 编辑:程序博客网 时间:2024/05/16 15:14
  1. 集合与数组的区别

    数组长度固定,集合长度可变集合中存储的元素必须是引用数据类型
  2. Vector,ArrayList,LinkedList的区别

    Vector,ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储List中的元素有序、允许有重复元素;Set中的元素无需,不允许有重复元素Vector线程同步,ArrayList、LinkedList线程不同步LinkedList适合指定位置插入、删除操作,不适合查找(增删快,查询慢);ArrayList、Vector适合查找,不适合指定位置的插入、删除操作(增删慢,查询快)ArrayList在元素填满容器时会自动扩充容器大小的50%,而Vector则是100%,因此ArrayList更节省空间
  3. HashTable,HashMap,TreeMap的区别

    HashTable线程同步,HashMap线程不同步HashTable不允许<键,值>有空值,HashMap允许<键,值>有空值HashTable使用Enumeration,HashMap使用IteratorHashTable中hash数组的默认大小是11,增加的方式为old*2+1,HashMap中hash数组的默认大小是16,增长方式一定是2的指数倍TreeMap能够把它保存的记录根据键排序,默认是按升序排序
  4. HashMap是如何工作的

    HashMap是一个针对数据结构的键值,每个键值都会有相应的值,关键是识别这样的值HashMap基于hash原理,通过put方法和get方法储存和获取对象存储键值对时,它调用键对象的hashCode方法来计算hashcode,然后找到bucket位置来存储值对象获取键值对时,通过键对象的equals方法找到正确的键值对,然后返回值对象HashMap使用LinkedList来解决碰撞问题,当发生碰撞了,对象将会储存在LinkedList的下一个节点中HashMap在每个LinkedList节点中储存键值对对象
  5. Iterator和ListIterator的区别

    ListIterator有add方法,可以向List中添加对象,而Iterator不能都有hasNext和next方法,实现顺序向后遍历,ListIterator有hasPrevious和previous方法,实现逆向(顺序向前)遍历ListIterator可以通过nextIndex和previousIndex方法定位当前的索引位置,Iterator没有此功能都可以实现删除对象,但ListIterator可以通过set方法实现对象的修改,Iterator只能遍历,不能修改
  6. 迭代器和枚举之间的区别

    Iterator允许移除从底层集合的元素Iterator的方法名是标准化的
原创粉丝点击