当前位置: 首页 > news >正文

javaList容器中容易忽略的知识点

在集合类框架中,List是使用比较多的一种

List

 |---Arraylist  内部维护的是一个数组,查找快增删慢

 |---LinkedList  底层是链表,增删快查询慢。

 |---Vctor线程安全的现在已经不用。

我们知道任何集合都可以返回迭代器,这里的list也是的,但是list可以返回list庄永迭代器,ListIterator。这都不是要说的重点,要是的重点在下面。

  1、假如说我们现在有一个list,然后我们获取list的Iterator了。如果没有使用it.next(),就直接使用remove方法的话,那么就会报错

  2、对于 Iterator 的子接口ListIterator 在迭代list 集合时,还可以对元素进行添加add(obj)),修改set(obj)的操作。

要说的内容看下面一段代码:

 1 public void test() throws Exception {
 2         
 3         ArrayList list = new ArrayList();
 4         // 增加:add() 将指定对象存储到容器中
 5         list.add("计算机网络");
 6         list.add("现代操作系统");
 7         list.add("java编程思想");
 8         list.add("java核心技术");
 9         list.add("java语言程序设计");
10         System.out.println(list);
11 
12         ListIterator lit = list.listIterator();
13         lit.next(); // 计算机网络
14         lit.next(); // 现代操作系统
15         System.out.println(lit.next()); // java编程思想
16         //用指定元素替换 next 或 previous 返回的最后一个元素
17         lit.set("平凡的世界");// 将java编程思想替换为平凡的世界,如果这里使用的是lit.add的话,将会在"java编程思想"后面添加一个“平凡的世界”
18         System.out.println(list);
19     }

输出的内容将会是:

[计算机网络, 现代操作系统, java编程思想, java核心技术, java语言程序设计]
java编程思想
[计算机网络, 现代操作系统, 平凡的世界, java核心技术, java语言程序设计]

3、使用ListIterator实现倒序输出

 1 import java.util.ArrayList;
 2 import java.util.ListIterator;
 3 
 4 public class Demo2 {
 5     public static void main(String[] args) {
 6         ArrayList list = new ArrayList();
 7         // 增加:add() 将指定对象存储到容器中
 8         list.add("计算机网络");
 9         list.add("现代操作系统");
10         list.add("java编程思想");
11         list.add("java核心技术");
12         list.add("java语言程序设计");
13         System.out.println(list);
14         // 获取List专属的迭代器
15         ListIterator lit = list.listIterator();
16         while (lit.hasNext()) {
17             String next = (String) lit.next();
18             System.out.println(next);
19         }
20         System.out.println("***************");
21         while (lit.hasPrevious()) {
22             String next = (String) lit.previous();
23             System.out.println(next);
24         }
25 
26     }
27 }

 

转载于:https://www.cnblogs.com/OliverZhang/p/6018996.html

相关文章:

  • 《AngularJS高级程序设计》学习笔记
  • centos搭建keepalived+ipvsadm实现高可用lvs分发
  • CSS Hack解决浏览器IE部分属性兼容性问题
  • Tripwire强大的服务器文件完整性监测系统-检测并报告服务器***
  • 表单验证插件----jquery validation
  • VS2013编译python源码
  • 【Java 基础篇】【第三课】表达式、控制结构
  • Microsoft Web Platform Installer 5.0
  • 这是一份优秀的餐饮行业微信营销解决方案
  • zabbix专题:附加 zabbix配置文件详解
  • 抽奖抢购算法改进版
  • 解决:SharePoint当中的STP网站列表模板没有办法导出到其它语言环境中使用
  • 无法删除数据库,因为该数据库当前正在使用问题解决
  • 洛谷 P1204 [USACO1.2]挤牛奶Milking Cows Label:模拟Ex 74分待查
  • expect
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • happypack两次报错的问题
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java程序员幽默爆笑锦集
  • JS+CSS实现数字滚动
  • LeetCode18.四数之和 JavaScript
  • Web Storage相关
  • 构建二叉树进行数值数组的去重及优化
  • 回流、重绘及其优化
  • 前端性能优化——回流与重绘
  • 微信小程序实战练习(仿五洲到家微信版)
  • 一个SAP顾问在美国的这些年
  • 怎么把视频里的音乐提取出来
  • 你对linux中grep命令知道多少?
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​【已解决】npm install​卡主不动的情况
  • ​卜东波研究员:高观点下的少儿计算思维
  • $.ajax()方法详解
  • (13)Hive调优——动态分区导致的小文件问题
  • (2)Java 简介
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (笔试题)合法字符串
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (全注解开发)学习Spring-MVC的第三天
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)可以带来幸福的一本书
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ****Linux下Mysql的安装和配置
  • .Net - 类的介绍
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Micro Framework初体验
  • .NET Micro Framework初体验(二)
  • .net2005怎么读string形的xml,不是xml文件。