java集合
一.分两部分:
一部分是一个一个存(称collection)。
另一部分是一对一对存(称Map)。
集合主要有3种重要的类型:(集合只能存引用类型)
List :是一个有序集合,可以放重复的数据。
Set:是一个无序集合,不允许放重复的数据
Map:是一个无序集合,集合中包含一个键对象,一个值对象,键对象不允许重复。值可以重复
collection接口。Iterable (形容词:可迭代的)所有集合的超级接口,collection的父接口是Interable(形容词)可迭代的,所有的集合都是可迭代的,迭代就是遍历。
(在Iterable接口里面有个方法 Iterator<T> iterator(),返回一个迭代器)
虚线代表实现类,实线代表子接口(接口和接口之间是依赖的关系比如:Collection和Iterator )另外接口和接口的关系还有继承:Set和SortedSet之间是继承关系。
程序分编译期和运行期,编译期看的是接口里面的方法,真正运行底层会有对象,那个对象肯定实现了接口。
(collection它上面有个接口叫Iterable,iterable有个iterator方法,就证明collection也有这个iterator方法,表示所有的集合都是可迭代的,所以,所有的集合都可以调用iterator方法,集合调用iterator方法是干什么的呢?得到它所依赖的迭代器,拿到迭代器干什么呢?遍历集合。迭代器是通过什么样的方法去迭代这个集合的呢?会发现有三个方法,这三个方法结合起来完成集合的(迭代)或遍历)
1.boolean hasNext() 用来判断集合中是否有下一个元素可以迭代。如果返回true,说明可以迭代。
2.E next() 用来返回迭代的下一个元素,并把指针向后移动一位。
3.void.remove()从迭代器指向的collection种移除迭代器返回的最后一个元素(可选操作)
Collection接口:常用的子接口有:List接口、Set接口。
List接口常用的子类有:ArrayList类、LinkedList类。Vector(面试会有,但用的很少)
Set接口常用的子类有:HashSet类、LinkedHashSet类。
(list, set 继承于Collection,而这四个类实现了List和Set接口)
我们编程可以是面向接口编程的,底层是实现的接口的
二.Map集合图解
三.单向链表图解
Collection接口:常用的子接口有:List接口、Set接口。
List接口常用的子类有:ArrayList类、LinkedList类。
Set接口常用的子类有:HashSet类、LinkedHashSet类。
(list, set 继承于Collection,而这四个类实现了List和Set接口)