Collection
是下面集合的父接口,有自己的方法等
是继承与Iterable接口的
有迭代器
◆~|------List
是Collection下的一个子接口。
特点;有序,而且是可重复的。
方法和Collection一样
拥有自己特有的迭代器
|------ArrayList()
是LIST下的一个主要的实现类
是一个线程不安全的,但是效率高(现在的安全机制很多都部署在服务器,
交换机,路由器等)
有特有的方法。
特点;
查找快,增删慢,因为底层是使用典型的数组来存储的。所以每次删除增
都要移动数组所有元素的下标
|------LinkedList()
是LIST下的一个子类,而且增加Vector下的Stack子类的特性,和方法。
1.具有FIFO先进先出的队列结构
2.具有FIFL先进后出的栈结构(枪)
特点;
适合频繁的插入,删除,不适合查找,因为底层是采用链表数组的方式
进行存储的,而每个元素的第一个角标是指向其上一个元素,最后一个角标
指向最后一个元素。第一个元素的角标和最后一个元素的角标都是null
|------Vector()
是一个古老的实现类,是线程安全的,效率低。所以现在基本都不采用,基本用于
维护以前的程序
|------Stack()
是一个栈特性的类,位于VECTOR下的一个子类。
特点;
FILO先进后出,后出先进的特性
◆~|------Set
是COLLECTION下的一个子接口,
特点是无序的,不可重复的
|------HashSet()
是SET下的一个主要的实现类,存储的元素在是无序的,不可重复的。
|------LinkedHashSet()
是SET下的一个子类,是按照添加进去的元素的添加顺序进行排序输出,而不会造成
一个乱序。
适合对于频繁的遍历,较少的删除,操作。
|------TreeSet()
是SET下的一个子类,按照添加元素(非自定义类)进去的升序(从小到大排序)
如果要使用降序(从大到小)进行排序则需要重写Comparator的compare()方法
如果是自定义类,要求自定义类实现Comparable接口,否则无法添加进集合中,会
报错。
如果实现了Comparable接口之后则在重写comparaTo()方法时则可以按照需求进行
一个排序,而comparaTo()接口相等则返回正整数,不相等返回负数
相等返回0。
如果在自定义类实现了COMPARABLE接口之后不符合要求可以使用Comparator接口,
重写compare()方法。
COMPARABEL中的COMPARE方法比COMPARATOR中的COPATRE方法的优先级低。
如果重写了COMPARATBLE或COMPARATOR接口中的方法,建议同时重写HASHCODE和EQUALS
方法,避免使用COMPARABLE或COMPARATOR接口中的方法时,比较如果相等
而内容不相等则不会不让其添加。
注;建议使用SET时重写HASHCODE和EUQALS方法同时重写,
因为HASHCODE是计算一个元素位于内存存储的一个散列值,这个值不是唯一的。
所以建议同时重写EQUALS方法,避免出现相同的HASHCODE码,内容一样,也可以加入
进来。
如果2个元素EQUALS相同那么他们的HASHCODE必须相同,
在使用SET时,是先计算HASHCODE码,在进行一个比较
如果是使用EQUALS,则先进行EQUALS在计算HASHCODE码
==================================================================================================
泛型(Generic)
是在JDK5.0出现新特性
作用;
安全,使得用户无法随意的输入类型,破坏程序的。
增加程序的安全性。
适用;
确定集合是某单个类型的。
包装类
使得程序更有扩展性
包装类中增加了N个方法(进制的转换)
因为java是面向对象的语言,而基本数据类型则不是对象,则有了包装类,每一个基本数据
类型都对应则一个包装类
转换成字符串。toString() String.valueOf()
基本数据类型转换。 Integer.value() Integer.parseInt()
字符串转换包装类 integer.parse类型()
Map
是一个和Collection同级的类,拥有键和值,单位是entry。键和值是成对出现的。
键是不可以重复的(SET),值是可重复的(Collection)
键和值可以同时为null。但键为null只能有一个。
存储是无序。
|------HashMap
存储是无序的。是主要的实现类。可以添加null键和null值
|------LinkedHashMap
按照添加进行的key元素进行排序和遍历
|------TreeMap
按照KEY所在类的指定属性进行排序,要求KEY是同一个类的对象,对KEY考虑使用定制排序
和自然排序
|------Hashtable
是一个古老是实现类,是一个线程安全的,效率低,不可以添加null键和null值。
如果要添加null键和null值不建议使用
|-----Propertics
常用来处理属性文件
==================================================================================================
Collections
是一个工具类,方法都是静态方法,可以使用静态导入,这个类中封装了N个方法,用于操作集合。