在线客服
 扫描二维码
下载博学谷APP
 扫描二维码
关注博学谷微信公众号
Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再一一个类的形式提供。集合类可以在里面保存多个对象的类,不同的集合类有不同的功能和特点。这里就和大家介绍一下再使用集合类各种容器的时候,必须注意的相关细节。

  1、迭代器:
  迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。
  也就是在迭代循环中调用一次next方法一次就要hasNext判断一次,比如语句。
  sop(it.next()+"..."+it.next())会发生上述异常。迭代器的next方法返回值类型是Object,所以要记得类型转换,应用泛型后就不用强转。
  2、List集合:
  List集合里面的元素因为是带角标,所以List集合里面的元素都是有序的,另外List集合可以包含重复元素,也可以包含null。
  List集合有迭代器Iterator,还有一个特有迭代器列表ListIterator。
  List集合中判断元素是否相同都是用equals方法,无论contains、remove都依赖equals方法,比如往ArrayList集合里面存放学生,同名同年龄视为同一个人,此时就需要在学生类复写Object类里面的equals方法(非常重要!!!要注意!!)。
  3、Set集合:
  Set接口里面存放的是元素是无序的,不可以有重复元素,可以包含null。
  Set集合只有一种取出方式,就是迭代器Iterator。
  Set集合功能和Collection是一致的,没有特殊方法。
  3.1、HashSet:
  集合里面存放的元素是无序的,唯一的。
  底层数据结构是哈希表,哈希表结构的数据都是无序的,哈希表结构的操作效率都高效。
  线程不同步。
  保证元素唯一性的原理是:通过复写hashCode和equals方法。
  如果两元素的hashCode值相同,则继续判断两元素equals是否为真。
  如果两元素的hashCode值不同,则不会调用equals方法。
  当我们往HashSet集合存放自定义的元素时(比如学生对象),通常都要复写hashCode和equals方法,而且hashCode和equals方法不通过我们调用,HashSet集合底层内部自己调用,自己拿元素去比较。
  3.2、TreeSet
  TreeSet集合可以对存放的元素进行排序,弥补了Set集合元素无序的缺点,且元素是唯一的。
  底层数据结构是二叉树,二叉树结构都是有序的。
  线程不同步。
  TreeSet集合要求往集合里存放的元素自身具备比较性,否则会报错。
  TreeSet集合保证元素唯一性的依据是:通过compareTo或者compare方法中的来保证元素的唯一性。TreeSet排序的第一种方式:让元素自身具备比较性,
  定义元素类实现Compareble接口,覆盖compare方法,此方式是元素的自然顺序。
  TreeSet排序的第二种方式:让集合具备比较性当元素自身不具备比较性或者具备的比较性不是我们所需要的比较性时,此时就需要让集合具备自定义的比较性。
  4、Map集合:
  4.1、Hashtable
  底层是哈希表结构线程安全的,并且键和值不能为null。
  4.2、HashMap
  底层是哈希表结构线程不安全的,键和值可以为null。
  4.3、LinkedHashMap
  底层是链表和哈希表线程不安全
  4.4、TreeMap
  底层是二叉树线程不安全的
  有开发经验的同学都知道,尤其在编程开发工作中,任何一个细节的疏忽都会造成整个程序运行出现问题。所以博学谷小编提醒大家,无论是学习还是工作中,都要注意这些细节问题的积累与总结,这样才能避免问题重复出现,或者在出现问题时快速响应并解决问题。
— 申请免费试学名额 —
    在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
    
    讲师一对一辅导,在线答疑解惑,指导就业!
  
相关推荐 更多
 String s = "Hello";s = s + " world!"码执行变化
String s = "Hello";s = s + " world!";这两行代码执行后原始的 String 对象中的内容变了吗? 没有。因为 String 被设计成不可变(immutable)类,所以它所有对象都是不可变对象。在这段代码中,s 原先指向一个 String 对象,内容是 "Hello",然后我们对 s 进行了+操作。
9847
2019-05-24 16:23:20
 JavaWeb核心技术课程项目实战
JavaWeb就是用Java技术来解决相关Web领域的技术总和,包括Web服务器和Web客户端两部分。Java的Web框架有很多种,虽然各不相同,但基本也都是遵循特定的路数的。使用Servlet或者Filter拦截请求,使用MVC的四项设计架构,使用约定、XML或Annotation实现配置,运用Java面向对象的特点实现请求和相应的流程。
7362
2019-07-22 15:07:55
 自学Java编程为什么难以成功,要怎样学呢?
相信不少自学Java失败的小伙伴都有这样的疑问:自学Java编程为什么难以成功,要怎样学呢?Java一直以来都是深受程序员喜爱的编程语言,当然它的难度也是不容小觑的。尤其是自学,最大的问题就是难以坚持。因此最好的解决方案就是报培训班。下面我们一起来看看自学Java会遇到的那些困难和报班学习的优势吧!
5813
2019-10-10 14:59:00
 转行学Java后悔了怎么办?如何调整职业方向?
不少人辞去工作转行学Java,没学会转行学Java后悔了。在学习过程中发现自己并不适合做编程,感到后悔怎么办呢?工作没有了,又花费了时间和经历转行没成功。有的人转行是真的喜欢,在转行前做了很多准备下定决心去学习;而有的人转行学Java很盲目,看别人学完找到高薪工作自己也想学,并不是真的喜欢,这两种心态就决定了前者更容易获得成功。
11137
2020-01-16 11:05:04
 声明式事务控制学习笔记整理
今天让我们走进声明式事务控制的学习,具体内容包括编程式事务控制相关对象,基于 XML 的声明式事务控制以及基于注解的声明式事务控制。对声明式事务控制感兴趣的同学,赶紧一起来看看小编整理的学习笔记吧!
5159
2020-04-14 19:54:55
 
 
 