温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中使用集合类需要注意哪些细节

发布时间:2022-01-10 09:45:55 来源:亿速云 阅读:170 作者:iii 栏目:编程语言

本篇内容主要讲解“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


  底层是二叉树线程不安全的

到此,相信大家对“java中使用集合类需要注意哪些细节”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI