美文网首页程序员
java集合框架学习笔记

java集合框架学习笔记

作者: 海的那一边 | 来源:发表于2019-01-16 10:34 被阅读80次

java容器类类库的用途是保存对象。Java集合框架中主要有两种容器:Collection和Map。集合框架包括以下三个内容:接口、类、算法。接口是集合抽象的数据类型。类是接口的具体实现。算法是对象的方法的一些计算。

集合框架图如下:
图中符号意义:
接口:用短线虚线框表示
抽象类:用长虚线
类:用实线框表示
接口和接口之间的实现:用虚线和空白三角表示
类与类之间,以及类与接口之间的实现:用实线和空白三角
produce关系-即之间有关系,但并非直接实现:虚线和实心三角


集合框架图.gif

集合接口:

集合接口 描述
Collection 最基础的集合接口,存储不唯一,无序的对象
List 存储不唯一,有序的对象
Set 存储的对象是唯一的,无序的
Map 存储一组键值对
Queue 队列,先进先出
SortedSe 继承Set接口,元素是有序的
SortedMap 按key值升序排列
Map.Entry 描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。
... ...

List查找效率高,Set查找效率低,List删除和插入效率低,Set删除和插入效率高。
数组和集合区别:数组的长度是固定的,集合长度不固定。数组只能保存基本类型和对象。集合可以保存对象和基础类型的包装类。
Map和List 以及Set并不是同级关系。List 和Set是Collection的子接口,Map并不属于Collection接口系列。

集合抽象类:

集合抽象类 描述
AbstractCollection 实现了大部分的集合接口
AbstractList 继承于AbstractCollection 并且实现了大部分List接口
AbstractSet 继承于AbstractCollection 并且实现了大部分Set接口
... ...

集合具体类:

集合具体类 描述
ArrayList 实现了List接口,实现了长度可变的数组
HashSet 实现了Set接口,存储是唯一的,无序的元素,可最多有一个null元素
TreeSet 实现了Set接口,可以用来实现排序等功能
HashMap 实现了Map接口,可根据键的hashcode值存储元素,可最多有一个null键
TreeMap 继承了AbstractMap
LinkedHashMap 继承于HashMap,使用元素的自然顺序对元素进行排序
HashTable Hashtable继承于Dictionary类,实现了Map接口Hashtable 的函数都是同步的
Vector 该类和ArrayList非常相似,但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍
Stack 栈是Vector的一个子类,它实现了一个标准的后进先出的栈

迭代器:
主要用于遍历Collection集合中的元素,使你能够通过循环来得到或删除集合的元素。

泛型方法:
在调用这个接口的时候可以使用不同的参数类型。注意类型参数只能代表引用型类型,不能是基础类型。

public static < E > void printArray( E[] inputArray )
   {
      // 输出数组元素            
         for ( E element : inputArray ){        
            System.out.printf( "%s ", element );
         }
         System.out.println();
    }

泛型类

public class Box<T> {
   
  private T t;
 
  public void add(T t) {
    this.t = t;
  }
 
  public T get() {
    return t;
  }

有了Java泛型,可以指定容器存放对象类型。
例如:

List<String> name = new ArrayList<String>();
List<Integer> age = new ArrayList<Integer>();
List<Number> number = new ArrayList<Number>();

参考链接:http://www.runoob.com/java/java-collections.html
http://www.cnblogs.com/buwuliao/p/9305377.html
https://blog.csdn.net/a2011480169/article/details/52047600

相关文章

网友评论

    本文标题:java集合框架学习笔记

    本文链接:https://www.haomeiwen.com/subject/kkiedqtx.html