手机版学校入驻客服中心网站导航

欢迎来到南宁IT培训学校!

咨询热线

Java学习路线 集合

来源:南宁IT培训学校    时间:2022/4/1 17:57:06

  关于集合的问题,今天就简单的聊一下。

  1.1什么是Iterator?

  概念: Iterator是一个接口,它是集合的迭代器,集合可以通过Iterator去遍历集合中的元素,常用API接口:

  注意:

  (1)Iterator只能单向移动。

  (2)Iterator.remove()是安全的方式来在迭代过程中修改集合;如果在迭代过程中以任何其它的方式修改了基本集合将会产生未知的行为。而且每调用一次next()方 法,remove()方法只能被调用一次,如果违反这个规则将抛出一个异常。

  1.2什么是ListIterator

  概念: ListIterator的功能更加强大, 它继承于Iterator接口,只能用于各种List类型的访问。可以通过调用listIterator()方法产生一个指向List开始处的ListIterator, 还可以调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator,汉化API如下:

  由此我们可以推断出ListIterator可以:

  (1)双向移动(向前/向后遍历).

  (2)产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引.

  (3)可以使用set()方法替换它访问过的较后一个元素.

  (4)可以使用add()方法在next()方法返回的元素之前或previous()方法返回的元素之后插入一个元素.

  代码实例如下:

  List list = new ArrayList<>();

  list.add("老大");

  list.add("老二");

  list.add("老三");

  ListIterator iter = list.listIterator();

  //set方法使用

  System.out.println("--------------set方法的使用---------------");

  while (iter.hasNext()) {

  String string = (String) iter.next();

  if(string.equals("老二")) {

  iter.set("xxx");

  }

  }

  for (String string : list) {

  System.out.println(string);

  }

  System.out.println("----------------反向遍历-------------------");

  // 将游标定位到集合的结尾

  while (iter.hasNext()) {

  iter.next();

  }

  // 迭代器遍历hasPrevious()方法用于反向遍历的时候判断是否还有上一个元素,并打印出上一个下标,如果有才打印,没有就是-1

  while (iter.hasPrevious()) {

  System.out.println(iter.previous() + "——>" + iter.previousIndex());

  }

  2. LinkedHashSet

  概念: LinkedHashSet继承自HashSet,HashSet存入的元素是不可重复的,无序的。与HashSet相比,LinkedHashSet源码更少、更简单,的区别是LinkedHashSet内部使用的是LinkedHashMap。这样做的意义或者好处就是LinkedHashSet中的元素顺序是可以增加的,也就是说遍历序和插入序是一致的。

  特点: 1、底层是一种链接列表和哈希表组成

  2、可以增加元素的性,是由哈希表决定的(hashCode()和equals())

  3、可以增加元素的迭代顺序一致(有序),存储和取出一致,是由链表决定

  场合: 什么时候使用LinkedHashSet集合?

  如果在开发中,元素性,并且还要增加元素有序(存储和取出一致),使用LinkedHashSet集合。

  代码:

  3. LinkedHashMap

  概念: HashMap是哈希表结构,可以增加键的性,并不增加有序性,而LinkedHashMap是Map接口的哈希表和链表实现,具有可预知的迭代顺序。哈希表增加键的性、链表增加键的有序(进出一致)

联系方式

选择专业时,如果犹豫不定,不知道选择哪个比较好,敬请致电,专业的咨询老师会为你解答。

  • 报名热线:400-6318-059
  • 咨询老师:吴老师
  • 点击咨询:
开课专业

常见问题

没有想要的答案?马上提问

友情链接: [南亚视点电脑学校]

电脑版|手机版

版权所有: 郑州天华信息技术有限公司