java集合添加部门_Java集合基本概念及元素添加

Java容器类类库的用途是"保存对象", 并将其划分为两个不同的概念:

(1)Collection: 一个独立元素的序列, 这些元素都服从一条或多条规则. List必须按照插入的顺序保存元素, 而Set不能有重复元素. Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)

(2)Map: 一组成对的"键值对"对象, 允许你使用键来查找值, 它也被称为"关联数组", 因为它将某些对象与另外一些对象关联在了一起, 或者被称为"字典", 因为你可以使用键对象来查找值对象, 就像在字典中使用单词来定义一样. Map是强大的编程工具.

在java.util包中的Arrays和Collections类中都有很多实用方法,  Arrays.asList()接收一个数组或是一个用逗号分隔的元素列表(使用可变参数), 并将其转换为一个List对象, Collections.addAll()方法接受一个Collections对象, 以及一个数组或是一个逗号分隔的列表, 将元素添加到Collection中, 下面的示例展示了这两个方法:

public static voidmain(String[] args) {//Collection

Collection collection = new ArrayList(Arrays.asList(1, 2, 3, 4, 5));

Integer[] i= {6, 7, 8, 9, 10};

collection.addAll(Arrays.asList(i));

Collections.addAll(collection,11, 12, 13, 14, 15);

Collections.addAll(collection, i);for(Integer c : collection) {

System.out.print(c+ ",");

}//output: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,7,8,9,10,

}

但是, Arrays.asList()方法的限制是它对所产生的List的类型做出了最理想的假设, 而并没有注意到它会赋予什么样的类型, 有时候就会引发问题:

classSnow {}class Powder extendsSnow {}class Light extendsPowder {}class Heavy extendsPowder {}class Crusty extendsSnow {}class Slush extendsSnow {}public classj_221 {public static voidmain(String[] args) {List snow1 = Arrays.asList(new Crusty(), new Slush(), newPowder());//List snow2 = Arrays.asList(new Light(), new Heavy());

List snow3 = new ArrayList();

Collections.addAll(snow3,new Light(), newHeavy());

List snow4 = Arrays.asList(new Light(), newHeavy());}

}

当试图创建snow2时, Arrays.asList()中只有Powder类型, 因此它会创建List而不是List, 尽管Conllections.addAll()工作的很好, 因为他从第一个参数中了解到了目标类型是什么; 正如从创建snow4操作中所看到的,可以在Arrays.asList()中间插入一条"线索", 以告诉编译器对于由Arrays.asList()产生的List类型, 实际的目标类型应该是什么, 这称为显示类型参数说明.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值