ArrayList类别实作了List接口,List接口是Collection接口的子接口,主要增加了根据索引取得对象的方法。

ArrayList使用数组实作了List接口,所以对于快速的随机取得对象来说,使用ArrayList可以得到较好的效能,不过在移除对象或插入对象时,ArrayList就比较慢(使用 LinkedList 在这方面就好的多)。

来看看一个ArrayList的范例:

ArrayListDemo.javapackage onlyfun.caterpillar;
import java.util.*;
public class ArrayListDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);List<String> list = new ArrayList<String>();System.out.println("输入名称(quit结束)");while(true) {System.out.print("# ");String input = scanner.next();if(input.equals("quit"))break;list.add(input);}System.out.print("显示输入: ");for(int i = 0; i < list.size(); i++)System.out.print(list.get(i) + " ");System.out.println();}
}

在 J2SE 5.0 之后新增了泛型(Generic)的功能,使用对象容器时建议容器中将储存的对象型态,如此您的对象在存入容器会被限定为您所宣告的型态,而取出时,也不至于失去原来的型态信息,可以避免型态转换时的问题。

使用add()方法可以将一个对象加入ArrayList中,使用size()方法可以传回目前的ArrayList的长度,使用get()可以传回指定索引处的对象,使用toArray()可以将ArrayList中的对象转换为对象数组。

以下是执行结果:

输入名称(quit结束)

 # Justin# caterpillar# momor# quit

显示输入: Justin caterpillar momor

可以使用get()方法指定索引值取出对象,然而如果您的目的是要循序取出容器中所有的对象,则您可以使用Iterator类,Iterator类实作 Iterator 模式,实际来看个例子:


package onlyfun.caterpillar;
import java.util.*;
public class ArrayListDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);List<String> list = new ArrayList<String>();System.out.println("输入名称(quit结束)");while(true) {System.out.print("# ");String input = scanner.next();if(input.equals("quit"))break;list.add(input);}Iterator iterator = list.iterator();while(iterator.hasNext()) {System.out.print(iterator.next() + " ");}System.out.println();}
}

iterator()方法会传回一个Iterator对象,这个对象提供的遍访的方法,hasNext()方法测试Iterator中是否还有对象,如果 有的话,可以使用next()取出。

事实上,在J2SE 5.0您也不必须使用iterator()了,使用增强的for循环可以直接遍访List的所有元素,例如:


package onlyfun.caterpillar;
import java.util.*;
public class ArrayListDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);List<String> list = new ArrayList<String>();System.out.println("输入名称(quit结束)");while(true) {System.out.print("# ");String input = scanner.next();if(input.equals("quit"))break;list.add(input);}for(String s : list) {System.out.print(s + " ");}System.out.println();}
}

Arraylist gossip相关推荐

  1. Cassandra Gossip协议的二三事儿

    Gossip协议是Cassandra维护各节点状态的一个重要组件,下面我们以Gossip协议三次握手为线索逐步分析Gossip协议源码. Gossip协议通过判断节点的generation和versi ...

  2. Java List与ArrayList 的区别(List list =new Arraylist(); ArrayList<String> arrayList = new ArrayList())

    一般想知道List 与ArrayList 的区别可能大部分都是看到了 List list = new ArrayList(); 和 ArrayList arrayList = new ArrayLis ...

  3. List 为什么可以实例化ArrayList

    昨天我带的一个同事问我List 为什么可以实例化ArrayList,刚开始一下萌了(带了快 2个月了) 比如List list = new ArrayList(); List 是一个接口, 接口使用的 ...

  4. ArrayList源码学习

    可增长数组结构 实现: 1. 内部采用数组的方式. 1.1 添加元素,会每次校验容量是否满足, 扩容规则是当前数组长度+当前数组长度的二分之一.容量上限是Integer.MAX_VALUE. copy ...

  5. 比较ArrayList、LinkedList、Vector

    翻译人员: 铁锚 翻译时间: 2013年12月2日 原文链接: ArrayList vs. LinkedList vs. Vector 1. List概述 List,就如图名字所示一样,是元素的有序列 ...

  6. 3月7日 ArrayList集合

    ArrayList与数组的区别: 数组是连续的.同一类型数据的一块区域,而集合可以是不连续的.多种数据类型的. 1.ArrayList ArrayList al = new ArrayList(); ...

  7. 转 java c++互传arraylist

    Java JNI由浅入深(包括:Java和C++互传ArrayList泛型对象参数) 2010-11-25 09:57 1694人阅读 评论(1) 收藏 举报 我们知道Java是一个运行在虚拟机里面的 ...

  8. List and ArrayList

    List<> and ArrayList Class Diagrams Using the Bit Complement of the BinarySearch() Result 代码   ...

  9. java arraylist和list_Java中ArrayList和LinkedList区别

    原文链接:http://pengcqu.iteye.com/blog/502676 一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据 ...

最新文章

  1. 2019年1月份访问量超过1千的文章
  2. 最长公共子序列LCS[C++题解]
  3. Mybatis入门及于hibernate的区别
  4. C 语言中的内存分析
  5. Linux下启动/关闭Oracle服务和 oracle监听启动/关闭/查看状态
  6. 阿帕奇链接mysql_apache guacamole 使用mysql 连接
  7. win7系统图标异常修复方法
  8. 20 MM配置-BP业务伙伴-定义业务伙伴和供应商编码保持一致
  9. mathpix公式利器使用心得
  10. 算法不归路之最大子序列(C++版)
  11. HiveQL学习笔记(二):Hive基础语法与常用函数
  12. 系统架构设计师教程-学习-记录(29)系统开发基础知识-软件开发方法(5)软件系统工具
  13. 如何查找孔与轴配合的公差带表
  14. Cdn英文的读音音标_教育 | 老司机请回答:孩子学英文自然拼读和中文拼音会不会混?...
  15. 计算机控制系统中a d是什么,计算机控制系统中,()代表模拟量输出。A、AIB、AOC、DID、DO - 试题答案网问答...
  16. 简单局域网聊天室--Java版
  17. 人人开源前后端分离部署到阿里云服务器
  18. 数据库开发与设计规范
  19. 解决“连接U8数据库服务器失败”的方法尝试
  20. ps4饥荒联机版服务器未响应,《饥荒联机版》国服的正确打开方式,你get到吗?...

热门文章

  1. 科技管理的作业选题 很重要
  2. 管理心得之学术,交通,作息,心态
  3. 就是把努力涂抹在人生的画卷上
  4. 图书馆预约在线课程方法
  5. 《人潮汹涌》的观后感
  6. LeetCode 669. Trim a Binary Search Tree修剪二叉搜索树 (C++)
  7. 协程实现爬虫的例子主要优势在于充分利用IO时间去请求其他的url
  8. linux下ip冲突检测 arp
  9. 关于linux系统下文件压缩归档操作命令略提
  10. 一级建造师考试通过了 !