上海IT培训
美国上市IT培训机构

13062801911

热门课程

使用Java集合类各种容器时必须注意的细节

  • 时间:2019-12-12 09:49
  • 发布:上海达内
  • 来源:上海达内Java培训学院

Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再一一个类的形式提供。集合类可以在里面保存多个对象的类,不同的集合类有不同的功能和特点。这里达内上海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培训班小编提醒大家,无论是学习还是工作中,都要注意这些细节问题的积累与总结,这样才能避免问题重复出现,或者在出现问题时快速响应并解决问题。

以上内容就是小编今天的分享,希望对想要学习java语言的小伙伴能有所帮助。想要了解更多java语言相关内容可关注我们达内上海java培训机构官网(),或者咨询我们的在线老师。

上一篇:零基础自学Java看什么书比较好入门
下一篇:没有下一篇了

零基础自学Java看什么书比较好入门

想要参加Java培训 上海Java培训机构哪家好

上海java培训需要多少钱 java工程师未来前景如何

上海java培训班学习课程相关内容介绍

选择城市和中心
北京

黑龙江省

  • 达内哈尔滨哈站中心
  • 达内哈尔滨哈西中心
  • 达内大庆中心
吉林省

  • 达内长春长大中心
  • 达内长春亚泰中心
辽宁省

内蒙古

  • 达内呼和浩特中心
天津

河北省

  • 达内石家庄先天下中心
  • 达内石家庄中山路中心
  • 达内秦皇岛中心
山西省

  • 达内太原龙城中心
  • 达内太原会计中心
  • 达内太原学府中心
  • 达内太原网络营销中心
  • 达内晋中中心
  • 达内运城中心
陕西省

  • 达内西安交大中心
  • 达内西安高新中心
  • 达内西安和平门中心
  • 达内西安省体中心
山东省

  • 达内济南山大路中心
  • 达内济南趵突泉中心
  • 达内济南会计中心
  • 达内济南大明湖中心
  • 达内青岛山东路中心
  • 达内烟台海港路中心
  • 达内潍坊中心
  • 达内临沂中心
  • 达内青岛CBD中心
  • 达内青岛西海岸中心
  • 达内青岛城阳中心
河南省

  • 达内郑州文化路中心
  • 达内郑州嵩山路中心
  • 达内郑州金水路中心
  • 达内郑州东风路中心
  • 达内洛阳王城中心
江苏省

  • 达内南京总统府中心
  • 达内南京新街口中心
  • 达内南京软件谷中心
  • 达内南京明故宫中心
  • 达内南京常府街中心
  • 达内苏州南门中心
  • 达内苏州园区中心
  • 达内苏州石路中心
  • 达内无锡宝龙中心
  • 达内无锡恒隆中心
  • 达内徐州中心
安徽省

  • 达内合肥银泰中心
  • 达内合肥农大中心
  • 达内合肥三孝口中心
  • 达内合肥汇金中心
  • 达内芜湖中心
  • 达内蚌埠中心
湖北省

  • 达内武汉光谷中心
  • 达内武汉洪山?中心(原民大中心)
  • 达内武汉武昌中心
  • 达内武汉鲁广中心
四川省

  • 达内成都钻石中心
  • 达内成都高升桥中心
  • 达内成都锦江中心
  • 达内成都天府中心
  • 达内成都金融街中心
重庆

  • 达内重庆杨家坪中心
  • 达内重庆石桥铺中心
  • 达内重庆江北中心
  • 达内重庆解放碑中心
湖南省

  • 达内长沙松桂园中心
  • 达内长沙河西CBD中心
江西省

  • 达内南昌高新中心
  • 达内南昌人民公园中心
浙江省

  • 达内杭州西湖中心
  • 达内杭州西溪中心
  • 达内杭州黄龙中心
  • 达内杭州创业中心
  • 达内华东大学生实训基地
  • 达内杭州武林门中心
  • 达内杭州下沙中心
  • 达内杭州文教中心
  • 达内宁波中心
  • 达内温州中心
  • 达内金华中心
贵州省

  • 达内贵阳中心
福建省

云南省

  • 达内昆明五一路中心
  • 达内昆明春城路中心
  • 达内昆明金尚中心
广西省

  • 达内南宁中心
广东省

  • 达内广州五羊中心
  • 达内广州天河北中心
  • 达内广州体育东中心
  • 达内广州岗顶中心
  • 达内广州云计算中心
  • 达内华南大学生实训基地
  • 达内广州客村中心
  • 达内深圳罗湖中心
  • 达内深圳龙岗中心
  • 达内深圳宝安中心
  • 达内深圳宝安体育馆中心
  • 达内深圳童程童美中心
  • 达内深圳地王中心
  • 达内深圳科技园中心
  • 达内深圳龙华中心
  • 达内珠海中心
  • 达内东莞南城中心
  • 达内东莞东城中心
  • 达内佛山中心
  • 达内中山中心
海南省

  • 达内海南中心
//360推送 //百度自动推送 //51la