1、 ArrayList、Vector和Stack有什么区别?

1、ArrayList的方法和实现基本上和Vector一样,底层都是数组的实现(简:API基本一样)

​   2、Stack继承了Vector,两者的方法都是线程安全,ArrayList没有考虑线程的问题

3、vector速度慢,ArrayList做了优化,效率更高

2、 ArrayList 和 LinkedList 的区别?

1、 ArrayList底层是数组的实现,linkedList地层是连接的实现(简:数据结构不同)

1.1在java中链表就是自己实现一个类,在类中记录了前一个和后一个的地址,每次查找都需要找到前一个或后一个才能往前或者往后找

2、ArrayList查找速度快,删除和插入速度慢 (常用)

3、LinkedList查找速度慢,删除和插入速度快

4、LinkedList有自己独有的方法:addFirst() addLast() removeLast() removeFirst()。(首尾重要)

3、set和List的区别?

① set接口下的集合特点:

1、没有下标

​    2、无序的 ​

3、不能重复(前面的被后面的覆盖)

② List接口下的集合特点:

1、有下标 ​

2、有序的(按照添加的顺序获取)

​    3、可以重复

set转list:

List< 类名 > list = new ArrayList< >( set类 );

4、collections 和collection的区别?

collections是java.util下的工具类,其下有 set 及 list;

collection是java.util下的接口;

5、HashSet 和TreeSet的区别?

HashSet不可以排序

TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法

1、HashSet(hashset比较是否相等,根据两个对象的哈希值)

1、HashSet不可以排序

1)、add()--- 添加元素,会先判断是否为同一对象。出于业务上的考虑我们需要重写HasgCoda方法和equals方法,来判断两个对象是业务上的相等;

2)、remove(Object o)--- 将元素从集合中移除 3)、size()---查看集合长度;

HashSet特点:

1)、遍历时没有顺序;

2)、允许包含null ;

3)、类中不允许出现重复元素;

4)、不能有for循环遍历能用foreach或while循环遍历;

2、TreeSet

1、TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法

1)、first()----返回第一个元素

2)、last()----返回最后一个元素

3)、pollLast()---删除最后一个元素

4)、pollFirst()---删除第一个元素

1、使用外部比较器对TreeSet中的元素进行排序,外部比较器作为TreeSet的构造方法参数传递过去。

2、使用外部比较器,我们自定义的类可以不用实现CompareTo

3、Hash的优缺点:

优点:删,增、查很快,提高存储率

缺点:无序,不可重复

6、Comparable和Comparator的区别?

Comparable在java.long包;

Comparator在java.util包;


7、集合和数组的区别?

①、数组创建长度固定,集合长度会随集合元素的添加自动扩展。

②、集合中只能存放对象的引用,而数组可以有基本类型,也可以有引用类型。

③、集合中的算法更加丰富,使用集合操作数据会比数组简洁。

最新文章

  1. Oracle工具类-生成数据库现有Job的创建脚本
  2. 前端easyui的简化调用
  3. [转帖]海森矩阵(Hessian matrix)
  4. jquery-mobile之loading加载自定义
  5. rails 配置使用mysql
  6. Sql注入一种dump所有数据的方法
  7. MSSQL系统表常用操作
  8. linux下安装多个mysql实例(摘自国外:How to create multiple mysql instance in CentOS 6.4 and Red Hat 6.4)
  9. const参数,const返回值与const函数
  10. 图片验证码自动识别,使用tess4j进行验证码自动识别(java实现)
  11. nodejs6下使用koa2
  12. 基本的传染病模型:SI、SIS、SIR及其Python代码实现
  13. java.lang.reflect.MalformedParameterizedTypeException异常问题
  14. 【Json】fastjson与jackson常用操作记录
  15. [Abp 源码分析]四、模块配置
  16. RHEL/Centos7 安装图形化桌面(转)
  17. react的Virtual DOM
  18. 写一个方法,用于解读 url 后面的请求参数,最终得到 {&quot;a&quot;:2,&quot;b&quot;:3,&quot;c&quot;:4};
  19. 【Spring】SpringMVCの環境構築(簡)(Version3.1)
  20. 关于C++中的指针、数组

热门文章

  1. 基于nc命令监控服务端口的Shell脚本
  2. Mybatis-Plus的BaseMapper的用法
  3. conda退出base 环境
  4. 13、Qt界面布局
  5. 线程Thread、线程池ThreadPool
  6. windows下安装geopandas
  7. 2-SAT (two-statisfiability) 算法 学习笔记
  8. 【BZOJ4552】排序(线段树,二分)
  9. HDU 3468:A Simple Problem with Integers(线段树+延迟标记)
  10. crontab 常见 /dev/null 2&gt;&amp;1 详解