首页 > 编程语言 > 详细

Java_集合特点

时间:2019-07-21 21:46:18      阅读:77      评论:0      收藏:0      [点我收藏+]

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个方法,用于操作集合。

Java_集合特点

原文:https://www.cnblogs.com/-levi/p/11222317.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!