集合框架-List接口
List接口概述
有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复的元素。
特点
有序(存储和取出的元素一致),可重复的。
package cn.itcast_01;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ListDemo2 {public static void main(String[] args) {// 创建集合对象List list = new ArrayList();// 存储元素list.add("hello");list.add("world");list.add("java");list.add("javaee");list.add("android");list.add("javaee");list.add("android");// 遍历集合Iterator it = list.iterator();while (it.hasNext()) {String s = (String) it.next();System.out.println(s);}}
}
特有功能
package cn.itcast_03;import java.util.ArrayList;
import java.util.List;/** List集合的特有功能:* A:添加功能* void add(int index,Object element):在指定位置添加元素* B:获取功能* Object get(int index):获取指定位置的元素* C:列表迭代器* ListIterator listIterator():List集合特有的迭代器* D:删除功能* Object remove(int index):根据索引删除元素,返回被删除的元素* E:修改功能* Object set(int index,Object element):根据索引修改元素,返回被修饰的元素*/
public class ListDemo {public static void main(String[] args) {// 创建集合对象List list = new ArrayList();// 添加元素list.add("hello");list.add("world");list.add("java");// void add(int index,Object element):在指定位置添加元素// list.add(1, "android");//没有问题// IndexOutOfBoundsException// list.add(11, "javaee");//有问题,下标越界// list.add(3, "javaee"); //没有问题// list.add(4, "javaee"); //有问题,下角越界// Object get(int index):获取指定位置的元素// System.out.println("get:" + list.get(1));// IndexOutOfBoundsException// System.out.println("get:" + list.get(11));// Object remove(int index):根据索引删除元素,返回被删除的元素// System.out.println("remove:" + list.remove(1));// IndexOutOfBoundsException// System.out.println("remove:" + list.remove(11));// Object set(int index,Object element):根据索引修改元素,返回被修饰的元素System.out.println("set:" + list.set(1, "javaee"));System.out.println("list:" + list);}
}
List集合的特有遍历功能:size()和get()方法结合使用
package cn.itcast_03;import java.util.ArrayList;
import java.util.List;public class ListDemo2 {public static void main(String[] args) {// 创建集合对象List list = new ArrayList();// 添加元素list.add("hello");list.add("world");list.add("java");// Object get(int index):获取指定位置的元素// System.out.println(list.get(0));// System.out.println(list.get(1));// System.out.println(list.get(2));// IndexOutOfBoundsException// System.out.println(list.get(3));// 用循环改进// for (int x = 0; x < 3; x++) {// System.out.println(list.get(x));// }// 如果元素过多,数起来就比较麻烦,所以我们使用集合的一个长度功能:size()// 最终的遍历方式就是:size()和get()for (int x = 0; x < list.size(); x++) {// System.out.println(list.get(x));String s = (String) list.get(x);System.out.println(s);}}
}
特有迭代器ListIterator
package cn.itcast_04;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;/** 列表迭代器:* ListIterator listIterator():List集合特有的迭代器* 该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法。* * 特有功能:* Object previous():获取上一个元素* boolean hasPrevious():判断是否有元素* * 注意:ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用。*/
public class ListIteratorDemo {public static void main(String[] args) {// 创建List集合对象List list = new ArrayList();list.add("hello");list.add("world");list.add("java");// ListIterator listIterator()ListIterator lit = list.listIterator(); // 子类对象// while (lit.hasNext()) {// String s = (String) lit.next();// System.out.println(s);// }// System.out.println("-----------------");// System.out.println(lit.previous());// System.out.println(lit.previous());// System.out.println(lit.previous());// NoSuchElementException// System.out.println(lit.previous());while (lit.hasPrevious()) {String s = (String) lit.previous();System.out.println(s);}System.out.println("-----------------");// 迭代器Iterator it = list.iterator();while (it.hasNext()) {String s = (String) it.next();System.out.println(s);}System.out.println("-----------------");}
}
集合框架-List接口相关推荐
- java集合框架的接口_Java集合框架——Set接口
第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 ...
- Java集合框架——List接口
第三阶段 JAVA常见对象的学习 集合框架--List接口 image 按照集合框架的继承体系,我们先从Collection中的List接口开始学习 (一) 概述及功能(ArrayList演示) (1 ...
- c++ map iterator 获取key_Java集合框架——Map接口
第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...
- Java集合框架之接口Collection源码分析
本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...
- java集合框架的接口_Java集合框架之Collection接口详解
Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架.Java集合工具包位于Java.util包下 ...
- Java.集合 框架,接口,常用集合特点比对
框架 接口 Iterable 可迭代接口 获取迭代器方法(Iterator<T> iterator();),使用该方法进行遍历. 迭代器实现Iterator接口. boolean hasN ...
- D - JDK17源码阅读 - 集合框架 - Collection<E> 接口 - 集合框架核心接口
提前 关于抽象的描述并不完全代表具体的实现,但是具体实现不会脱离抽象描述 关于这个接口,官方给的描述太多太多,不用看的太仔细,随意看看就好 集合层次结构中的根接口. 一个集合代表一组对象,称为它的元素 ...
- java 集合接口原理_图文剖析java集合框架—Set接口
Map接口图补充待续 继上一节讲解了List接口的常用实现类以及源码的一些分析,这节将讲解集合中的Set接口. HashSet: 底层原理:哈希表结构存储.对集合的迭代次序不作任何保证; 允许元素nu ...
- Java集合框架概述及Collection接口方法讲解
Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储.另一方面,使用Array存储对象方面具有一些弊 端,而Java 集合就像一种容 ...
最新文章
- Future获取线程返回值能使线程顺序执行?
- URL中的hash(井号)
- 对没有标记为安全的activex控件进行初始化和脚本运行_新的C++安全编码规则出炉...
- 深入理解多线程(五)—— Java虚拟机的锁优化技术
- matlab文件读写监听,matlab对文件的读写
- 1、leetcode704 二分查找*
- PHP通过__call实现简单的AOP(主事务后的其他操作)比如前置通知,后置通知
- ubuntu18.04新安装时Unable to locate package问题
- shell 查看Linux 进程 是否存在
- kail linux暴力破解wifi
- 论文查重颜色分别代表什么含义?
- Word2010经常莫名其妙无法撤销
- 微信小程序实现扫一扫功能
- 大学英语六级翻译分类高频词汇
- maven LTDM 部署前台Tomcat 各种折腾---自己总结经验
- 坚持并活下去!cxuan 在 CSDN 的 2020 年终总结。
- FCat用户权限管理项目——angular4、springcloud
- 【转载】SoapUI接口测试
- 程序员高薪“盛宴”背后:人才结构性过剩和缺失共存
- Ubuntu 上VS Code更新后 Remote-SSH 无法连接服务器:failed to install the vs code server!
热门文章
- Sadness could be a leader ——《头脑特工队》
- R语言 : 层次聚类分析
- Flash CS5中文帮助文档CHM版
- kaggle比赛:Classify Leaves(使用resnet50预训练模型进行:图片树叶分类)
- 强化学习--Prioritised Replay DQN
- 消防设备电源监控系统在城市建筑中的应用
- 牛商网携手九州云,构建新型互联网业务平台
- TARS-PHP:PHP构建高性能RPC框架
- Minecraft Story Mode Season 2 for mac(我的世界故事模式第二季)激活版
- LINUX These critical programs are missing or too old: make compiler