java持有对象的使用(一)

java容器类类库的用途是“保存对象”,并将其划分为两个不对的概念:
1>Collection 一个独立元素的序列,这些元素都服从一条或者多条规则。list必须按照插入的顺序保存元素,而set不能有重复元素。
Queue按照排队规则来确定对象产生的顺序(通常它们被插入的顺序相同)。
2>Map 一组成对的"键值对"对象,允许你使用键来查找值。ArrayList允许你使用数字来查找值,因此在某种意义上,它将数字和对象关联在一起。
映射表允许我们使用另一个对象来查找一个对象,他也被称为"关联数组",因为它将某些对象与另外一些对象关联在一起,或者被称为"字典"。
因为你可以用键对象来查找值对象,Map是强大的编程工具。
理想情况下你需要指定所使用的精确类型的地方是在创建的时候,例如:

List<Apple> apples =new ArrayList<Apple>();

注意~! ArrayList已经被向上转型为List,使用接口的目的在于如果你决定去修改你的实现,你所需的只是在创建出修改它,像这样:

List<Apple> apples =new LinkedList<Apple>();

因此,你应该创建一个具体类的对象,将其转型为对应的接口,然后再剩下代码中都使用这个接口。但是这样的方式并非总能奏效,
因为某些类具有额外的功能,例如:LinkedList具有在List接口中未包含的额外方法,而TreeMap也具有在Map接口中未包含的方法。如果需要使用这些方法
就不能将他们向上转型为更通用的方法。
Collection接口概括了序列的概念——一种存放一组对象的方式。下面这个简单的实例用Integer对象填充了一个Collection(这里用ArrayList),
然后打印所产生的容器中所有的元素。

import java.util.*;
public class SimpleCollection {

	public static void main(String[] args) {
		Collection<Integer> c = new ArrayList<Integer>(); 
		for (int i = 0; i < 10; i++)
			c.add(i);
		for (Integer i : c)
			System.out.print(i+ ",");
	}
}

输出如下:

0,1,2,3,4,5,6,7,8,9,

因为这个实例只是使用了Collection方法,所以任何继承Collection类的对象都可以正常工作,反ArrayList是最基本的序列类型。

添加元素

java.util包中的Arrays和Collection类中都有很多使用方法,可以在一个Collection中添加一组元素。
ArrayList.asList()方法接受一个数组或是一个用逗号分割的元素列表,并将其转换为List对象。Collection.addAll()方法接受一个collecction对象,
以及一个数组或是用逗号分割的列表,将元素添加到connection中。
例如:

public static void main(String[] args) {
	Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
	Integer[] moreInts = {6,7,8,9,10};
	collection.addAll(Arrays.asList(moreInts));
	Collections.addAll(collection, 11,12,13,14,15);
	Collections.addAll(collection, moreInts);
	List<Integer> list = Arrays.asList(16,17,18,19,20);
	list.set(1, 99);
	System.out.println(collection.toString());
	System.out.println(list);
}

输入结果如下:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 6, 7, 8, 9, 10]
[16, 99, 18, 19, 20]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值