郑州制作网站,网站备案相关手续费,wordpress 免费字体,怎么把网站做成自适应Set和List的区别 Set 接口实例存储的是无序的#xff0c;不重复的数据。List 接口实例存储的是有序的#xff0c;可以重复的元素。 Set 检索效率低下#xff0c;删除和插入效率高#xff0c;插入和删除不会引起元素位置改变 实现类有HashSet,TreeSet。 List 和数…
Set和List的区别 Set 接口实例存储的是无序的不重复的数据。List 接口实例存储的是有序的可以重复的元素。 Set 检索效率低下删除和插入效率高插入和删除不会引起元素位置改变 实现类有HashSet,TreeSet。 List 和数组类似可以动态增长根据实际存储的数据的长度自动增长 List 的长度。查找元素效率高插入删除效率低因为会引起其他元素位置改变 实现类有ArrayList,LinkedList,Vector 。
集合实现
1.ArrayList
该类也是实现了List的接口实现了可变大小的数组随机访问和遍历元素时提供更好的性能。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%插入删除效率低。
2.HashSet
该类实现了Set接口不允许出现重复元素不保证集合中元素的顺序允许包含值为null的元素但最多只能一个。
3.HashMap
HashMap 是一个散列表它存储的内容是键值对(key-value)映射。 该类实现了Map接口根据键的HashCode值存储数据具有很快的访问速度最多允许一条记录的键为null不支持线程同步。
常用的java.util包中的定义类
1、Vector
该类和ArrayList非常相似但是该类是同步的可以用在多线程的情况该类允许设置默认的增长长度默认扩容方式为原来的2倍。
2、Stack
栈是Vector的一个子类它实现了一个标准的后进先出的栈。
3、Dictionary
Dictionary 类是一个抽象类用来存储键/值对作用和Map类相似。
4、Hashtable
Hashtable 是 Dictionary(字典) 类的子类位于 java.util 包中。
5、Properties
Properties 继承于 Hashtable表示一个持久的属性集属性列表中每个键及其对应值都是一个字符串。
6、BitSet
一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。
ArrayList
ArrayList 类是一个可以动态修改的数组与普通数组的区别就是它是没有固定大小的限制我们可以添加或删除元素。 ArrayList 继承了 AbstractList 并实现了 List 接口。 ArrayList使用样例
LinkedList
链表Linked list是一种常见的基础数据结构是一种线性表但是并不会按线性的顺序存储数据而是在每一个节点里存到下一个节点的地址。
链表可分为单向链表和双向链表。
一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。 LinkedList的用法示例 一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。 Java LinkedList链表 类似于 ArrayList是一种常用的数据容器。 与 ArrayList 相比LinkedList 的增加和删除的操作效率更高而查找和修改的操作效率较低。
以下情况使用 ArrayList :
频繁访问列表中的某一个元素。只需要在列表末尾进行添加和删除元素操作。
以下情况使用 LinkedList :
你需要通过循环迭代来访问列表中的某些元素。 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。 LinkedList 继承了 AbstractSequentialList 类。 LinkedList 实现了 Queue 接口可作为队列使用。 LinkedList 实现了 List 接口可进行列表的相关操作。 LinkedList 实现了 Deque 接口可作为队列使用。 LinkedList 实现了 Cloneable 接口可实现克隆。 LinkedList 实现了 java.io.Serializable 接口即可支持序列化能通过序列化去传输。
Java HashSet
HashSet 基于 HashMap 来实现的是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的即不会记录插入的顺序。
HashSet 不是线程安全的 如果多个线程尝试同时修改 HashSet则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。 HashSet示例展示
Java HashMap
HashMap 是一个散列表它存储的内容是键值对(key-value)映射。
HashMap 实现了 Map 接口根据键的 HashCode 值存储数据具有很快的访问速度最多允许一条记录的键为 null不支持线程同步。
HashMap 是无序的即不会记录插入的顺序。
HashMap 继承于AbstractMap实现了 Map、Cloneable、java.io.Serializable 接口。 HashMap的示例