Java学习之集合(List接口)
void add(int index, E element);
void addAll(int index, collection<?> c);
2、删除
Object remove(int index);
3、修改
Object set(int index, E element);
4、获取
Object get(int index);
int indexOf(Object o);
int lastIndexOf(Object 0);
List subList(int fromIndex,int toIndex);//获取子列表
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator; public class ListDemo { public static void main(String[] args) {
List list = new ArrayList();
show(list); show2(list); modify(list);
} public static void show(List list) {
list.add("abc1");
list.add("abc2");
list.add("abc3");
list.add("abc4");
list.add("abc5");
System.out.println("list add:"+list);
// 插入元素
list.add(1, "abc10");
System.out.println("list index add:"+list);
// 删除元素
list.remove(2);
System.out.println("list remove(index):"+list);
// 修改元素
list.set(2, "abc8");
System.out.println("list set(index,value):"+list);
// 获取元素
//System.out.println(list.get(5));//IndexOutOfBoundsException
} public static void show2(List list) {
// Iterator it = list.iterator();
System.out.println("=========Iterator=========");
for (Iterator it = list.iterator(); it.hasNext();) {
System.out.println("next:"+it.next());
}
// list 特有的取出元素的方式之一
System.out.println("=========list.size()=========");
for (int x = 0; x < list.size(); x++) {
System.out.println("list get(index):"+list.get(x));
}
} public static void modify(List list) {
/*
* for (Iterator it = list.iterator(); it.hasNext();)
* {
* Object obj = it.next();// java.util.concurrentmodificationException //
* 异常原因:集合和迭代器同时操作集合,导致异常
* if (obj.equals("abc2"))
* {
* //操作集合
* list.add("abc9");
* } else
* System.out.println(obj); }
*/
System.out.println(list); // 异常解决:可以使用ListIterator来完成在迭代中对元素进行操作
// 注意:只有list集合具备ListIterator接口
/*
* ListIterator接口方法 hasNext(); next();
*
* hasPrevious(); previous()
*/ System.out.println("=========ListIterator 可修改集合=========");
for (ListIterator it = list.listIterator(); it.hasNext();) {
Object obj = it.next();
if (obj.equals("abc4")) {
it.add("abc9");
} else
System.out.println(obj);
}
System.out.println("list 特有的ListIterator"+list);
}
結果:

Java学习之集合(List接口)的更多相关文章
- Java开发知识之Java中的集合Set接口以及子类应用
---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...
- Java学习笔记之---比较接口与抽象类
Java学习笔记之---比较接口与抽象类 抽象类是描述事物的本质,接口是描述事物的功能 接口与抽象类的异同 1.一个类只能继承一个父类,但是可以有多个接口 2.抽象类中的抽象方法没有方法体,但是可以有 ...
- java学习笔记—集合之Map集合
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Times } p.p2 { margin: 0.0p ...
- Java学习:集合双列Map
数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过 ...
- Java学习笔记:03面向对象-接口_多态
1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...
- Java学习关于集合框架的基础接口--Collection接口
集合框架(Collection Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准 ...
- Java学习之集合(Collection接口)
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储 集合特点: 1.用于存储对象的容器 2.集合长度可变 3.不可以存储基本数据类型 集合体系的顶层C ...
- Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口
通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素.一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象 ...
- 【Java学习笔记】Map接口的子接口---TreeMap
TreeMap,与TreeSet类似,可以对集合中的元素进行排序,同时保持元素的唯一性. 应注意,Comparable(实现接口,记得覆盖comparaTo方法),Comparator的使用. imp ...
随机推荐
- express设置允许跨域访问该服务.
const express = require('express');const app = express(); //设置允许跨域访问该服务.app.all('*', function (req, ...
- 【Shiro】四、Apache Shiro授权
1.授权实现方式 1.1.什么是授权 授权包含4个元素(一个比较流行通用的权限模型) Resources:资源 各种需要访问控制的资源 Permissions:权限 安全策略控制原子元素 基于资源和动 ...
- (转)Android OpenGL ES(一)
转:http://wiki.jikexueyuan.com/project/opengl-es-guide/pipeline.html OpenGL ES 主要用来开发 3D 图形应用的.OpenGL ...
- 如何用python读写CSV 格式文件
工作中经常会碰到读写CSV文件的情况.记录下,方便自己以后查询并与大家一起分享: 写CSV文件方法一: import csv #导入CSV with open("D:\eg ...
- 54、tensorflow手写识别的高级版本
''' Created on 2017年3月4日 @author: weizhen ''' import tensorflow as tf def weight_variable(shape): in ...
- 关闭禁用 Redis 危险命令
Redis 的危险命令主要有: flushdb,清空数据库 flushall,清空所有记录,数据库 config,客户端连接后可配置服务器 keys,客户端连接后可查看所有存在的键,当 redis k ...
- js 中常用的设计模式
常用的设计模式: 工厂方法模式.单例模式.适配器模式.组合模式.迭代子模式 (23种设计模式) 总体来说设计模式分为三大类: ①创建型模式 共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原 ...
- python 根据余弦定理计算两边的夹角
前面写过C#的. import numpy def GetAngle(sta_point, mid_point, end_point): ma_x = sta_point.X-mid_point.X ...
- docker安装及使用
一.简介 说起docker,大多数人第一时间想起来的应该有虚拟化.云计算,这三者有什么区别呢? 对比: 我们所熟知的虚拟化有KVM.xen.Hyper-V等,这些虚拟化虚拟出来的服务器会产生一个新的操 ...
- 2018-2-13-win10-安装Mpi
title author date CreateTime categories win10 安装Mpi lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23: ...