----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
毕老师说,学习一个新知识,要把握四点,一,它是什么,二,它有什么特点,三,如何使用它,四,什么时候使用它
运用这四点,我对集合进行了总结,发现,很系统也很具体!好方法!总结如下:集合总结:
一,集合初印象
1,什么是集合
集合是用来存储对象的容器, 和数组类似, 优点在于长度可变. 可以存储多种类型的数据.
2,集合有什么特点
a,存储长度可变(优于数组),
b,可用于存储对象
c,一个集合可以存储多种类型的对象,数据类型可以不一样
3,如何使用集合
根据需求选择具体的一种集合实现类来创建集合对象,通过集合对象的各种方法对数据进行操作
4,什么时候需要使用集合
在面向对象的编程思想中,都是以对象的形式对事物进行描述的,为了保证对象的生命周期,我们需要持有对象
在很多情况下,我们不知道在程序中需要创建多少个对象,这时就不能依靠定义引用对象的变量来持有每一个对象
存储对象的容器就能帮我们解决这样的问题,而集合便是这样的容器。
当需要存储及操作的数据或对象的个数不确定或类型不统一的情况下需要使用集合容器。
5,集合分类
集合分为两大类:Collection和Map
分类标准:存储列数不同
各自特点
a,Collection是单列集合,一次只能存储一个数据。在取出元素的时候直接通过遍历Collection就能拿到元素
b,Map是双列集合,一次存储一个键值对。在取出元素的时候有三种方法:
第一种是获取Map中所有的键,将所以的键存入Collection,再通过遍历Collection的键拿到对应的值。
第二种是获取Map中所有的值,将所以的值存入Collection,再通过遍历Collection的值拿到对应的键。
第三种是获取Map中键和值的映射关系表,通过这个映射关系表来拿到键值对。
二,Collection初印象
1,什么是Collection
Collection是一个集合接口,Collection接口
它是一个独立的元素的序列,这些元素服从一条或多条规则
2,Collection有什么特点
Collection是单列集合,一次只能存储一个数据。在取出元素的时候直接通过遍历Collection就能拿到元素
3,如何使用Collection
根据需求选择具体的一种集合实现类来创建集合对象,通过集合对象的各种方法对数据进行操作
4,什么时候使用Collection
当需要存储及操作的元素是单列的时候需要使用Collection集合
5,Iterable接口
JDK1.5新定义的接口作为Collection的父接口
Collection集合可以获取iterator迭代器
主要为了实现增强for循环
6,Collection分类:
Collection接口下主要分为两大类:List集合和Set集合
分类标准:是否有序,是否允许重复元素
各自特点
a,List集合的特点是元素有存储序、允许有重复元素
b,Set集合的特点是元素无存储顺序、不允许有重复元素
(一)List
(1)List初印象
1)什么是List
List是一个接口,是有序的 collection(也称为序列)。
此接口的用户可以对列表中每个元素的插入位置进行精确地控制。
用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
2)List有什么特点
元素有存储顺序,可重复。
3)如何使用List
根据不同需求,创建List接口的实现类对象来存储、操作元素。
在取出List中元素的时候可以通过以下三种方式对List进行迭代
a.普通for循环
由于List是有序的, 可以通过索引获取元素, 所以可以定义for循环, 从0循环到size()-1, 每次获取1个元素
b.迭代器
调用List的iterator()方法获取迭代器, 然后调用hasNext()方法判断是否包含下一个元素,
调用next()获取下一个元素
c.增强for循环
4)什么时候使用List
当要存储的元素需要保持存储顺序,或需要有重复的时候使用。
5)List的分类
List主要分为三大类:ArrayList,LinkedList和Vector
分类标准:实现原理不同,效率不同
各自特点
a,ArrayList:底层数组实现,查找快,增删慢,线程不安全
b,LinkedList:底层链表实现,增删块,查找慢
c,Vector:底层原理与ArrayList基本一样,线程安全(线程同步),效率低
(2)ArrayList初印象
1)什么是ArrayList
ArrayList是List接口的大小可变数组的实现类。
它实现了所有可选列表操作,并允许包括 null 在内的所有元素。
除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。
2)ArrayList有什么特点
底层数组实现,查找快,增删慢,线程不安全
3)如何使用ArrayList
直接创建此类对象来存储、操作元素。
在取出元素的时候,可以使用List的三种方法迭代方法。
4)什么时候使用ArrayList
当需要经常查找元素的时候可以使用ArrayList。
(3)LinkedList初印象
1)什么是LinkedList
LinkedList是List 接口的链接列表实现类。
它实现所有可选的列表操作,并且允许所有元素(包括 null)。
除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。
这些操作允许将链接列表用作堆栈、队列或双端队列。
2)LinkedList有什么特点
底层链表实现,增删块,查找慢
3)如何使用LinkedList
直接创建此类对象来存储、操作元素。
在取出元素的时候,可以使用List的三种方法迭代方法。
4)什么时候使用LinkedList
当需要经常增删元素的时候可以使用LinkedList。
(4)Vector初印象
1)什么是Vector
Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。
但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。
2)Vector有什么特点
底层原理与ArrayList基本一样,线程安全(线程同步),效率低
3)如何使用Vector
直接创建此类对象来存储、操作元素。
在取出元素的时候,除了以上3种方式, 还可以使用Enumeration,
通过elements()方法获得对象, 调用hasMoreElements()方法和nextElement()方法进行迭代.
4)什么时候使用Vector
基本不用
----------------------------------------未完待续-----------------------------------------------------
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
详情请查看: