Java_集合特点

来源:互联网 发布:mac chrome cpu占用 编辑:程序博客网 时间:2024/05/06 00:14
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个方法,用于操作集合。




0 0