时间 :2018/7/26
通常,程序总是根据运行时才知道的某些条件去创建对象。在此之前,不会知道所需对象的数量,甚至不知道确切的类型。为解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。
方法一:数组
数组是保存一组对象的最有效的方式,如果想保存一组基本数据类型,推荐使用。但数组具有固定的尺寸,而在更一般的情况中,在写程序中并不知道将需要多少对象,或者需要更复杂的方式来存储队象,因此数组尺寸固定这一限制显得太过受限了。
方法二:容器类
基本类型是:List,Set,Queue,Map,这些对象类型也成为集合类,一般使用术语“容器”来称呼它们。
Set对于每一个值都值保存一个队象。
Map是允许你将某些对象与其他一些对象关联起来的关联数组。
。。。。。。
Java容器类都可以自动的调整自己的尺寸。
下面开始总结一下容器
----Collection 容器,表示一组对象
----Collection与数组有两点不同:
----数组的容量是由限制的,而Collection库没有这样的限制,它的容量可以自动的调节
----Collection函数库只能用来存放对象,而数组没有这样的限制。
----Collection接口是Collection层次结构中的根接口,它定义了一些最基本的访问方法
----存放在Collection库中的数据,被称为元素
----Collection接口有两个子接口,是Set和List
----其中,List有序可重复
----Set,无序不可重复,相同的元素,后面的覆盖前面的
----Map没有继承Collection接口,Map提供Key到value的映射,key是唯一的,value可以重复
关于List
----第一个表示正确,第二个错误。因为List是一个接口,我们知道。接口和抽象类不能实例化,但可以创建一个指向自己的引用
public static void main(String[] args) {
List list;
//List a = new List();
//ArrayList类是继承AbstractList抽象类和实现List接口的一个实现类
//其中 list拥有List的所有属性和方法,不会拥有其实现类ArrayList独有的属性和方法
list = new ArrayList<>();
//如果想拥有ArrayList特殊的属性和方法
ArrayList aa = new ArrayList<>();
}
----为什么这样使用List呢?为了代码的可维护性,可复用性,可扩展性以及灵活性。因为我们不确定会一直使用ArraList。如果我们需要更改的话,就更改一处就行了。
----java集合框架中,最常使用的几种List的实现类是ArrayList,LinkedList和Vector,在各种List中,最好的做法是以ArrayList为默认的选择,当插入,删除频繁时,使用LinkedList,Vector总是比ArrayList慢,所以要避免使用它
----为什么List中的元素是重复,有序的?1.List的数据结构就是一个序列 2.List的元素在存储时互不干扰,没有依赖关系,所以可以重复
----关于List的详细介绍
明天开始总结Set和Map