一、数组、集合
数组、集合:都是一种容器,用一个对象管理多个对象;
数组:不能自动增长;只能存放同类型的元素
集合:能自动扩容;部分集合允许存放不同类型的元素;
二、学习这些集合类要掌握哪些东西:
1)怎样得到(选择)集合对象;
2)怎样添加元素
3)怎样删除元素
4)怎样循环遍历没一个元素
三、list、set、map
collection:父接口;
Set:接口 —一个实现类: HashSet
List:接口—三个实现类: LinkedList,Vector,ArrayList
SortedSet:接口—实现类:TreeSet
1、List:
List:有序列表,允许存放重复的元素;
实现类:
ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;
LinkedList:链表实现,增删快,查询慢
Vector:数组实现,线程安全,重量级
2.Set:
无序集合,不允许存放重复的元素;
实现类 HashSet:equals返回true,hashCode返回相同的整数;哈希表;
子接口SortedSet:对Set排序 实现类 :TreeSet:二叉树实现的;
TreeSet:
自定义排序:java.util.Comparator接口提供了具体的排序方式,指定被比较的对象的类型,Comparator有个compare(Type x, Type y)方法,用于比较两个对象的大小.如果希望用自定义排序,定义一个实现了该接口的类,实现cmpare方法,然后在构造TreeSet时作为参数传入: Set set = new TreeSet(new CustomerComparator())
自定义排序指类本身没有实现comparable接口,本身不具备排序能力,需要外部提供排序。可以写一个实现了comparator接口的类,里面实现对指定类的排序算法,在构造时把这个比较类传给构造函数。相当于第三方来对指定的类进行排序,这个实现会比较灵活,如果想用另外一种算法来对指定的类排序时,只需要传入不同的比较类就可以了。
看API: 泛型:表示一个对象;
Iterator:接口,迭代器;java.util;hasNext();next();remove();
Iterable:可迭代的,访问的 ;java.lang;实现了可