Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法

引入:如何创建对象

//
ArrayList<E> objectName =new ArrayList<>();  // 初始化
ArrayList<String> sites = new ArrayList<String>();

//
LinkedList<E> list = new LinkedList<E>();   // 普通创建方法
或者
LinkedList<E> list = new LinkedList(Collection<? extends E> c); // 使用集合创建链表
LinkedList<String> sites = new LinkedList<String>();

//
HashSet<String> sites = new HashSet<String>();

//
HashMap<Integer, String> Sites = new HashMap<Integer, String>();

一.ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList ,并实现了 List 接口。

常用方法:
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
二.LinkedList
LinkedList其实是一种链表结构,
LinkedList 继承了 AbstractSequentialList 类。
LinkedList 实现了 Queue 接口,可作为队列使用。
LinkedList 实现了 List 接口,可进行列表的相关操作。
LinkedList 实现了 Deque 接口,可作为队列使用。
LinkedList 实现了 Cloneable 接口,可实现克隆。
LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
常用方法也是与链表的头插法和尾插法,以及队列等相关
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
三.HashSet
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
常见方法:
add, remove,size,contains,clear等,跟ArrayList差不多的用法

四.HashMap
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
HashMap 是无序的,即不会记录插入的顺序。
HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
常见方法:
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法
以上四种集合存放的对象都是引用类型,构建时需要用到他们的封装类
Java笔记之--ArrayList,LinkedList,HashSet, HashMap的理解以及常用方法

以上四种均可用 for-each进行遍历
例如:

        for (String i : sites) {
            System.out.println(i);
        }

且HashMap可以分别遍历他们的key和value

        // 输出 key 和 value
        for (Integer i : Sites.keySet()) {
            System.out.println("key: " + i + " value: " + Sites.get(i));
        }
        // 返回所有 value 值
        for(String value: Sites.values()) {
          // 输出每一个value
          System.out.print(value + ", ");
        }

该笔记的学习来源于菜鸟教程

上一篇:Java-ArrayList常用API


下一篇:ArrayList源码阅读笔记