[JAVA · 0基础]:19.容器类 概述 Collection方法 Set方法 Map接口 业务思想

[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

容器 就是存放数据的一个集合

(java提供了一个接口专门去约束我们容器的实现类)

[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

Set: does not allow duplicate objects toenter the collection of elements

SortedSet: similar to set except that theelements in the set are stored in ascending order

List: is ordered, maintain an order asobjects are added and removed from the collection,can also contain duplicateentries of objects

Map: stores objects that are identifiedby unique keys, and may not store duplicate keys

SortedMap: similar to Map, except the objectsare stored in ascending order according to their keys

即:

•   Collection 接口:定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。

–  Set 中的数据对象没有顺序且不能够反复。

–  List 中的数据对象有顺序且能够反复。

–  Map 接口定义了存储“键(key)- 值(value)映射对”的方法。

Collection方法

•    Collection 表示一组对象。它是集中,收集的意思。就是把一些数据收集起来。

•    Collection函数库是在java.util 包下的一些接口和类,类是用来产生对象存放数据用的。而接口是訪问数据的方式。

•    Collection函数库与数组的两点不同:

1.数组的容量是有限制的,而Collection库没有这种限制,它容量能够自己主动的调节 。

2.Collection函数库仅仅能用来存放对象,而数组没有这种限制。

•    Collection接口是Collection层次结构 中的根接口。它定义了一些最主要的訪问方法,让我们能用统一的方式通过它或它的子接口来訪问数据。

•    差别:Collection代表一组对象。 Collection函数库就是java中的集合框架,Collection接口,是这个集合框架中的根接口。

•    存放在Collection 库中的数据,被称为元素(element) 。

Demo

输出结果:

[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

Iterator接口

•    全部实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象。

•    Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作。

•    Iterator接口定义了例如以下方法:

[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想Demo


[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想


Set方法

•    Set 接口是Collection接口的子接口,Set接口没有提供额外的方法,Set接口的特性是容器类中的元素是没有顺序的。并且不能够反复。

•    Set 容器能够与数学中“集合”的概念相相应。

•    J2SDK API中所提供的 Set 容器类有 HashSet,TreeSet 等。

Demo



[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

List接口

•    List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的。并且能够反复。

•    List 容器中的元素都相应一个整数型的序号记载其在容器中的位置,能够依据序号存取容器中的元素。

•    J2SDK 所提供的 List 容器类有 ArrayList。LinkedList 等。

Demo

[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

经常使用算法

类 java.util.Collections 提供了一些静态方法实现了基于List容器的一些经常使用算法

Demo


[JAVA · 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

Comparable接口  

问题:上面的算法依据什么确定集合中对象的“大小”顺序?

•     全部能够“排序”的类都实现了java.lang.Comparable 接口,Comparable接口中仅仅有一个方法

      public int compareTo(Objectobj);

      该方法:

•   实现了Comparable 接口的类通过实现 comparaTo 方法从而确定该类对象的排序方式。

Demo

 a :                                                                  name.compareTo(n.name));
               }
               public StringtoString() {
                     return"name: " + name + " score: " +                                   score.toString();
               }
}
import java.util.*;
public class StudentTest {
               public static voidmain(String[] args) {
                     List l1 = newLinkedList();
                     l1.add(newStudent(“ttt", 66));
                     l1.add(newStudent(“bbb", 77));
                     l1.add(newStudent(“ccc", 99));
                     l1.add(newStudent(“fff", 88));
                     l1.add(newStudent(“aaa", 66));
                     System.out.println(l1);
                     Collections.sort(l1);
                     System.out.println(l1);
               }
}</span></span>

[JAVA &#183; 0基础]:19.容器类
概述
Collection方法
Set方法
Map接口
业务思想

Map接口

•    实现Map接口的类用来存储键(key)-值(value) 对。

•    Map 接口的实现类有HashMap和TreeMap等。

•    Map类中存储的键-值对通过键来标识。所以键值不能反复。

Demo

泛型

泛型的作用就是为了约束你传入对象的类型;

通俗来讲:传进去什么,拿出来什么。

•    起因:

–  JDK1.4曾经类型不明白:

•   装入集合的类型都被当作Object对待,从而失去自己的实际类型。

•   从集合中取出时往往须要转型。效率低,easy产生错误。

•    解决的方法:

–  在定义集合的时候同一时候定义集合中对象的类型

•   能够在定义Collection的时候指定

•   也能够在循环时用Iterator指定

•    优点:

–  增强程序的可读性和稳定性

Demo

增强for循环

•     增强的for循环对于遍历array 或 Collection的时候相当简便

•     缺陷:

–    数组:

•     不能方便的訪问下标值

–    集合:

•     与使用Iterator相比,不能方便的删除集合中的内容

•     总结:

–    除了简单遍历并读出当中的内容外。不建议使用增强for

业务思想

JAVA提供的这个接口专门约束我们容器的实现类,从非常大程度上减轻了我们设计人员的负担。提高效率。

容器类的总结相对来说是比較零散的知识点,非常难完整的讲述出来。在不断的使用中,能够得到更好地理解。