十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
好程序员Java学习路线之集合,最近收到一些朋友的信息,问一下管关于集合的问题,今天就简单的聊一下。
创新互联是专业的霍林郭勒网站建设公司,霍林郭勒接单;提供成都网站设计、成都网站建设、外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行霍林郭勒网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!概念: Iterator是一个接口,它是集合的迭代器,集合可以通过Iterator去遍历集合中的元素,常用API接口:
例子:
注意:
(1)Iterator只能单向移动。
(2)Iterator.remove()是唯一安全的方式来在迭代过程中修改集合;如果在迭代过程中以任何其它的方式修改了基本集合将会产生未知的行为。而且每调用一次next()方 法,remove()方法只能被调用一次,如果违反这个规则将抛出一个异常。
概念: ListIterator的功能更加强大, 它继承于Iterator接口,只能用于各种List类型的访问。可以通过调用listIterator()方法产生一个指向List开始处的ListIterator, 还可以调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator,汉化API如下:
由此我们可以推断出ListIterator可以:
(1)双向移动(向前/向后遍历).
(2)产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引.
(3)可以使用set()方法替换它访问过的最后一个元素.
(4)可以使用add()方法在next()方法返回的元素之前或previous()方法返回的元素之后插入一个元素.
代码实例如下:
List list.add("老大"); list.add("老二"); list.add("老三"); 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()); } |
概念: LinkedHashSet继承自HashSet,HashSet存入的元素是不可重复的,无序的。与HashSet相比,LinkedHashSet源码更少、更简单,唯一的区别是LinkedHashSet内部使用的是LinkedHashMap。这样做的意义或者好处就是LinkedHashSet中的元素顺序是可以保证的,也就是说遍历序和插入序是一致的。
特点: 1、底层是一种链接列表和哈希表组成
2、可以保证元素的唯一性,是由哈希表决定的(hashCode()和equals())
3、可以保证元素的迭代顺序一致(有序),存储和取出一致,是由链表决定
场合: 什么时候使用LinkedHashSet集合?
如果在开发中,元素唯一性,并且还要保证元素有序(存储和取出一致),使用LinkedHashSet集合。
代码:
概念: HashMap是哈希表结构,可以保证键的唯一性,并不保证有序性,而LinkedHashMap是Map接口的哈希表和链表实现,具有可预知的迭代顺序。哈希表保证键的唯一性、链表保证键的有序(进出一致)
代码:
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。