java持有对象【1】容器类及ArrayList
如果一个程序只包含固定数量的且其生命周期都是已知的对象,那么这是一个非常简单的程序。 ----------java编程思想第十一章引言
java有许多方式引用对象,例如学过的数组,他是编译器支持的类型,用来保存一组对象的最有效方式。但是数组具有固定的尺寸,在此受限的情况下,就需学习java的容器类。
深入的学习就要去不停地阅读jdk。java使用类库提供了一套完整的容器类。其中基本类型是List,Set,Queue,Map。也称为集合类。java的类库中用了collection来指代该类库的一个特殊子集,即为层次结构中的根接口。
Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。
包 (bag) 或多集合 (multiset)(可能包含重复元素的无序 collection)应该直接实现此接口。
ArrayList,你可以看待他为“可以自动扩充自身尺寸的数组”。使用ArrayList的方法:创建一个实例,用add()插入对象,然后用get()访问这些对象,此时需要用到索引,像数组一样,但是不需要方括号 " [ ] " 。ArrayList还有一个方法size(),表示有多少个元素添加了进来,从而不会不小心因索引越界而引发错误(通过抛出运行时异常)。
public class AAO{
@SupperessWarnings("unchecked")
public staticvoid main(String[] args){
//ArrayList保存的是Object,所以可以通过其的add()方法添加Apple对象和Orange对象
//若想定义来保存Apple对象的ArrayList,需声明ArrayList<Apple>,尖括号内饰类型参数(可为多个)
ArrayList apples=new ArrayList();
for(int i=0;i<3;i++){ apples.add(new Apple()); }
apples.add(new Orange());
//get()方法取出的Apple对象,只是Object引用,需转型为Apple
for(int i=0;i<apples.size();i++){ ( (Apple)apples.get(i) ).id(); }
}
}
//Apple和Orange类除了都是Object之外没有共性。(如果一个类没有显示声明继承自哪个类,那么他自动继承自Object)
class Apple{
private static long counter;
private finallong id=counter++;
public long id() { return id ; }
}
class Orange{}
java持有对象【1】容器类及ArrayList的更多相关文章
- java持有对象【2】ArrayList容器续解
此为JDK API1.6.0对ArrayList的解释. ArrayList 使用java泛型创建类很复杂,但是应用预定义的泛型很简单.例如,要想定义用来保存Apple对象的ArrayList,可以声 ...
- java 持有对象
1.泛型和类型安全的容器 ArrayList,可以自动扩充大小的数组,add插入对象,get访问对象,size查看对象数目. 1 /** 2 * 泛型和类型安全的容器 3 * 2016/5/6 4 * ...
- java 持有对象总结
java提供了大量的持有对象的方式: 1)数组将数字和对象联系起来,它保存类型明确的对象,查询对象时,不需要对结果做类型转换,它可以时多维的,可以保存基本数据类型的数据,但是,数组一旦生成,其容量就不 ...
- Thinking In Java持有对象阅读记录
这里记录下一些之前不太了解的知识点,还有一些小细节吧 序 首先,为什么要有Containers来持有对象,直接用array不好吗?——数组是固定大小的,使用不方便,而且是只能持有一个类型的对象,但当你 ...
- java持有对象-集合类
面阿里的时候,面试就让我说一下集合 当时由于条件原因没听清面试官的问题,后来面试后,面试官让问他问题的时候,才说明白是什么 下面就接受一下我了解的集合类 集合类中大致可以分为两个体系 一.collec ...
- java 持有对象 ListIterator用法
package ch07; import java.io.*; import java.util.Iterator; import java.util.LinkedList; import java. ...
- 走进Java中的持有对象(容器类)之一 容器分类
Java容器可以说是增强程序员编程能力的基本工具,本系列将带您深入理解容器类. 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构. 我们可以通过创建引用来持有对象,如 ...
- Java基础 -- 持有对象(容器)
一 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构. 我们可以通过创建引用来持有对象,如 Class clazz; 也可以通过数组来持有多个对象,如 Class[] ...
- 工作随笔—Java容器基础知识分享(持有对象)
1. 概述 通常,程序总是运行时才知道的根据某些条件去创建新对象.在此之前,不会知道所需对象的数量,甚至不知道确切的类型,为解决这个普遍的编程问题:需要在任意时刻和任意位置创建任意数量的对象,所以,就 ...
随机推荐
- python处理json格式的数据
这里我就不介绍json了,不知道json的同学可以去百度一下json,首先我们的json的格式如下,这个json有点长,这个json来自我以前的一个小任务,具体看这里:http://www.cnblo ...
- Javac常量池的解读
interface IA{ public void md(); } public class Test07 implements IA{ final double d = 2.0d; final fl ...
- 代码高亮插件——wangHightLighter.js——demo演示
wangHighLighter.js demo 语言: 主题: 转换 说明: wangHightLighter.js是一个可以将代码高亮显示的javascript小插件,支持常用的20多语言. ...
- java中this$0 this$1 this$2
import java.lang.reflect.Field; public class Outer {//this$0 public class FirstInner {//this$1 publi ...
- 修改linux的ssh默认端口号22的方法
一.修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22 修改为自己要使用的端口号:Port 26000 然后 :x 退出保存 二.重启ssh服务 /etc/init. ...
- CRM项目再分析建表
今天老师带着我们分析了一点项目的业务,我们就觉得有些地方呢 有一些不妥额地方,然后呢 我们就在原来表的基础上做了一些修改! 我们也把我们组的项目业务的工作分配了一下! 但是我们遇到了一个组员不和我们 ...
- .2-浅析webpack源码之打包后文件
先不进源码,分析一下打包后的文件,来一张图: 首先创建两个JS文件,内容如下: // config.js module.exports = { entry: './input.js', output: ...
- C# WebApi 返回JSON
在默认情况下,当我们新建一个webapi项目,会自动返回XML格式的数据,如果我们想返回JSON的数据,可以设置下面的三种方法. 1. 不用改配置文件,在Controller的方法中,直接返回Http ...
- 树莓派安装.net core 2.1
0.更新源 sudo apt-get update 1.安装依赖 sudo apt-get install curl libunwind8 gettext 2.下载 SDK 或者 RunTime ht ...
- Spring基础(7) : Bean的名字
1.普通bean是用id标志,context.getBean时传入名称即可获得. <bean id="p" class="com.Person"/> ...