李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
持有对象--基本概念
Leefs
2019-11-27 AM
1758℃
0条
# 持有对象--基本概念 ### 前言 本篇将讲述一下《Java编程思想》第11.2节 ### 基本概念 > Java中的容器用途是“保存对象” **一、Java将容器分成两大类:** (1)Collection:一个独立元素的序列,这些元素都服从一条或多条规则 + 1.List:必须按照插入的顺序保存元素 + 2.Set:不能有重复元素 + 3.Queue:按照排队规则来确定对象产生的顺序(通常与他们被插入的顺序相同) (2)Map: 由“键值对”组成的,允许由键查找值,就像字典的目录,根据目录查找内容 **二、创建Collection接口** 1. 1.创建一个List: ```java // 创建容器对象的普遍形式 //利用接口List去创建一个具体子类ArrayList的容器对象 //注意泛型的使用 List
apples = new ArrayList
(); ``` 在上述代码中,`ArrayList`已经被向上转型为List 使用接口的目的在于如果你决定去修改你的实现,你所需的只是在创建出修改它,就像下面这样: ```java // 修改具体的实现子类 //在对象创建处直接修改实现的子类 List
apples = new LinkedList
(); ``` 因此,你应该创建一个具体类的对象,将其转型为对应的接口,然后在其余的代码中都使用这个接口。 **向上转型存在的问题是:将子类向上转型成父类,父类将无法访问子类中特有的方法。** 所以,这种方式并非总能奏效,因为某些子类具有额外的功能(**方法**)。 例如,`LinkedList`中具有在List接口中未包含的额外方法,而`TreeMap`也具有Map接口中未包含的方法。如果你需要使用这些方法,就不能将它们向上转型为更通用的接口。 2. 2.代码示例 Collection接口概括了序列的概念--一种存放一组对象的方式。 示例:用Integer对象填充一个Collection(这里用ArrayList表示),然后打印所产生的容器中的所有元素: ```java // 填充一个Collection public class SimpleCollection{ public static void main(String[] args){ //创建一个ArrayList对象,向上转型为Collection类型 //使用了泛型Integer Collection
c = new ArrayList
(); //for循环往里面添加对象 for(int i=0;i<10;i++){ //添加方法add(),将i添加到容器中 c.add(i); } //foreach将所有对象从容器中取出 for(Integer i:c){ //打印每个Integer对象的值 System.out.println(i+","); } } } ``` > 运行结果 ```java 0,1,2,3,4,5,6,7,8,9 ``` 因为上面的代码示例只使用了接口Collection的方法,因此,任何继承自Collection的类的对象都可以正常工作 ,但是`ArrayList`是最基本的序列类型。 add()方法的名称就表明它是要将一个新元素放置到Collection中。但是,在Java的API文档中非常仔细地叙述到:''要确保这个Collection包含指定的元素“,这是因为考虑到了Set的含义,因为在Set中只有当前元素不存在的情况下才会被添加进去。而`ArrayList`或者是其他的List,方法add()总是表示"把它放进去",因为List不关心元素是否重复。 所有的Collection都可以用`foreach`语法遍历,就像这里所展示的。
标签:
Java
,
Java编程思想
,
JavaSE
,
持有对象
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/227.html
上一篇
SQL语句练习题(一)
下一篇
持有对象--添加一组元素
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
高并发
Typora
Eclipse
随笔
LeetCode刷题
排序
算法
Flume
MySQL
Yarn
SpringCloudAlibaba
ajax
pytorch
Flink
栈
设计模式
ClickHouse
序列化和反序列化
Spark Streaming
Stream流
Kafka
持有对象
DataWarehouse
SQL练习题
散列
JavaSE
MyBatis
MyBatisX
并发编程
二叉树
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭