引入:如何创建对象
//
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 接口。
常用方法:
二.LinkedList
LinkedList其实是一种链表结构,
LinkedList 继承了 AbstractSequentialList 类。
LinkedList 实现了 Queue 接口,可作为队列使用。
LinkedList 实现了 List 接口,可进行列表的相关操作。
LinkedList 实现了 Deque 接口,可作为队列使用。
LinkedList 实现了 Cloneable 接口,可实现克隆。
LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。
常用方法也是与链表的头插法和尾插法,以及队列等相关
三.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 接口。
常见方法:
以上四种集合存放的对象都是引用类型,构建时需要用到他们的封装类
以上四种均可用 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 + ", ");
}
该笔记的学习来源于菜鸟教程