博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习笔记()ArrayList
阅读量:5023 次
发布时间:2019-06-12

本文共 1817 字,大约阅读时间需要 6 分钟。

1、什么是ArrayList

ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口
灵活的设置数组的大小。

2、如何使用ArrayList

最简单的例子:

ArrayList List = new ArrayList();

for( int i=0;i <10;i++ ) //给数组增加10个Int元素
List.Add(i);

// Point类型

ArrayList<Point> list = new ArrayList<Point>();

List.RemoveAt(5);//将第6个元素移除

for( int i=0;i <3;i++ ) //再增加3个元素
List.Add(i+20);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的数组

Iterator(迭代器)

就像是C语言中的链表一样。它是一个对象,它可以遍历并选择序列中的对象

 Java中的Iterator功能比较简单,并且只能单向移动:

  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

 

  (2) 使用next()获得序列中的下一个元素。

 

  (3) 使用hasNext()检查序列中是否还有元素。

 

  (4) 使用remove()将迭代器新返回的元素删除。

 

  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

迭代器应用:

 

List l = new ArrayList(); l.add("aa"); l.add("bb"); l.add("cc"); for (Iterator iter = l.iterator(); iter.hasNext();) {  String str = (String)iter.next();  System.out.println(str); } /*迭代器用于while循环 Iterator iter = l.iterator(); while(iter.hasNext()){  String str = (String) iter.next();  System.out.println(str); }

 

 

 

 

 

3、ArrayList重要的方法和属性

 

Add方法用于添加一个元素到当前列表的末尾
AddRange方法用于添加一批元素到当前列表的末尾
Remove方法用于删除一个元素,通过元素本身的引用来删除
RemoveAt方法用于删除一个元素,通过索引值来删除
RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除
Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动
InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动

 

另外,还有几个类似的方法:

Clear方法用于清除现有所有的元素
Contains方法用来查找某个对象在不在列表之中

ToArray方法

这个方法把ArrayList的元素Copy到一个新的数组中。

4、ArrayList与数组转换

例1:
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = (Int32[])List.ToArray(typeof(Int32));

例2:

ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = new Int32[List.Count];

List.CopyTo(values);

 

转载于:https://www.cnblogs.com/Kevin127/p/5326844.html

你可能感兴趣的文章
IOS 开发调用打电话,发短信
查看>>
CI 框架中的日志处理 以及 404异常处理
查看>>
keepalived介绍
查看>>
css3 标签 background-size
查看>>
python itertools
查看>>
Linux内核调试技术——jprobe使用与实现
查看>>
样式、格式布局
查看>>
ubuntu设计文件权限
查看>>
Vue双向绑定原理详解
查看>>
Android基础总结(5)——数据存储,持久化技术
查看>>
关于DataSet事务处理以及SqlDataAdapter四种用法
查看>>
bootstrap
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
工程经验总结之吹水"管理大境界"
查看>>
为什么JS动态生成的input标签在后台有时候没法获取到
查看>>
20189210 移动开发平台第六周作业
查看>>
java之hibernate之基于外键的双向一对一关联映射
查看>>
rxjs一句话描述一个操作符(1)
查看>>
第一次独立上手多线程高并发的项目的心路历程
查看>>
ServiceStack 介绍
查看>>