手表拍卖网站,品牌logo设计制作,中国纪检监察报什么级别,wordpress不收录List 与 Set 的区别#xff1a;
项ListSet重复允许重复的对象#xff08;多个null也可以#xff09;不允许重复的对象#xff08;null也只能有一个#xff09;有序性有序的。 保持了每个元素的插入顺序。即输出顺序就是输入顺序。 有序和无序都有。 HashSet#xff1a;无…List 与 Set 的区别
项ListSet重复允许重复的对象多个null也可以不允许重复的对象null也只能有一个有序性有序的。 保持了每个元素的插入顺序。即输出顺序就是输入顺序。 有序和无序都有。 HashSet无法保证每个元素的存储顺序。 LinkedHashSet按插入顺序存放。 数组与 ArrayList 的区别
相同点 1. 都具有索引index可以通过 index 来直接获取和修改任意项 2. 它们所创建的对象都放在堆中 3. 都能够对自身进行枚举因为都实现了 IEnumerable 接口
不同点
项数组ArrayArrayList数据类型可以是基本类型或对象类型。只能是对象类型。大小大小是固定的Array对象的初始化必须指定大小大小是动态的数据存放连续存放在内存中数组的元素是按照顺序依次存储在一块连续的内存空间中的。这种连续存储的方式使得数组在随机访问时效率很高因为可以通过计算偏移量直接定位到元素的内存位置。例如对于一个int类型的数组每个元素占用 4 个字节如果知道数组的起始地址和元素的索引就可以通过简单的乘法和加法运算来计算出元素的内存地址。对象的引用是连续的但对象本身在内存中的位置不一定连续。ArrayList 内部维护的是一个对象引用数组这些引用在内存中是连续存放的。但是这些引用所指向的实际对象如String对象或其他自定义对象本身在内存中的位置是由 Java 虚拟机的内存管理系统根据内存的使用情况动态分配的不一定是连续的。这种存储方式在插入和删除元素时相对灵活但在一定程度上可能会影响访问效率。插入与删除不能够添加和删除其中的项可以在任意位置插入和删除项。 访问 效率 高低 ArrayList 与 LinkedList 的区别
相同点 1. 都是线程不安全的 2. 都是按照存入的顺序取出
不同点
项ArrayListLinkedList实现方式基于数组。基于链表。随机访问支持随机访问。实现了RandomAccess 接口不支持随机访问。插入效率插入效率比较低需要扩容时效率会变低。插入效率比较高删除不一定高。使用场景随机访问的场景。插入很频繁的场景 用作栈、队列或双向队列