11.2持有(容纳)对象基本概念

来源:互联网 发布:htpc 播放软件 编辑:程序博客网 时间:2024/05/16 08:03

11.2持有(容纳)对象基本概念
容器的作用就是“保存对象”。两个不同概念
1.Collection一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存,Set不能有重复元素。Queue按照排队规则来确定对象的产生顺序(与他们插入的顺序相同)
2.Map:一组成对的“键值对”对象,用键查值。ArrayList可以用下标(索引)来查值,某种意义上它将数字与对象关联在了一起。映射表可以用另一个对象来查找某个对象,它也被称为“关联数组”,因为它将某些对象与另外一些对象关联在了一起,或者被称为“字典”,可以用键对象来查找值对象,像字典一样。
若集合中放置确切的类型对象:List apples = new ArrayList();
这里,ArrayList已经被向上转型为List,使用接口的目的是如果要修改你的实现,只需修改类型即可:
List apples = new LinkedList();
只需要创建一个具体类的对象,将其转型为对应的接口。
LinkedList有List接口中没有的方法,TreeMap在Map接口中也有Map中没有的方法。如果你想使用类型实现特有方法,就不能向上转型为更通用的接口。
Collection接口概括了序列的概念:存放一组对象。
package cn.wangs.c11.$11_1_2;

import java.util.ArrayList;
import java.util.Collection;

public class SimpleCollection {
public static void main(String[] args) {
Collection c = new ArrayList();
for (int i = 0; i < 10; i++) {
c.add(i);
}
for (Integer i : c) {
System.out.print(i+”,”);
}
}
}
任何继承自Collection的类的对象都可以正常工作,但是ArrayList是最基本的序列类型。
add()表示把一个新元素放置到Collection中,“要确保这个Collection包含指定的元素”。Set中只要元素不相同的情况下才会添加。ArrayList中,或者任何种类的List时,add()总是表示“把它放进去”,不关心是否存在重复。
所有的Collection都能用foreach语法遍历。“迭代器”将会更灵活。
练习2:修改SimpleCollection.java 用Set来表示c
package cn.wangs.c11.$11_1_2;

import java.util.HashSet;
import java.util.Set;

public class SimpleCollection {
public static void main(String[] args) {
Set c = new HashSet();
for (int i = 0; i < 10; i++) {
c.add(i);
}
for (Integer i : c) {
System.out.print(i+”,”);
}
}
}

练习3:修改Innerclass/Sequence.java,使可以向其中添加任意数量的元素(回头做?)

0 0
原创粉丝点击