找网站,北京二手房网站,跨境电商怎么做无货源模式,网络推广的方式方法1、List和Set是存储单列数据的集合#xff0c;Map是存储键值对这样的双列数据的集合#xff1b; 2、List中存储的数据是有顺序的#xff0c;并且值允许重复#xff1b;Map中存储的数据是无序的#xff0c;它的键是不允许重复的#xff0c;但是值是允许重复的#xff1b;…1、List和Set是存储单列数据的集合Map是存储键值对这样的双列数据的集合 2、List中存储的数据是有顺序的并且值允许重复Map中存储的数据是无序的它的键是不允许重复的但是值是允许重复的Set中存储的数据是无顺序的并且不允许重复但元素在集合中的位置是由元素的hashcode决定即位置是固定的Set集合是根据hashcode来进行数据存储的所以位置是固定的但是这个位置不是用户可以控制的所以对于用户来说set中的元素还是无序的。
Collection是一个接口与MAP接口是同级的 Collection代表的是单个元素对象的序列可以有序/无序可重复/不可重复 等具体依据具体的子接口SetListQueue等Map代表的是“键值对”对象的集合同样可以有序/无序 等依据具体实现
LIST List继承于 Collection 接口。List 是有序的 CollectionList 允许有重复元素实现 List 接口的常用类有 LinkedListArrayListVector
ArrayList 最常见的List实现类内部是通过数组实现的又名动态数组。允许对元素进行快速随机访问可以动态添加或者删除元素。每次添加新元素时ArrayList都会检查是否需要进行扩容操作默认是原来的50%。
Array 和 ArrayList的不同 Array即数组他是静态的一旦初始化后长度就不能改变了。而动态数组ArrayList可以随时对元素进行增删。所以当我们不知道有多少个元素时我们用ArrayList如果知道有多少个元素就用Array。
LinkList 用链表结构储存数据适合数据的动态插入和删除但是因为不支持直接按index查找所以随机访问和遍历速度慢。而且因为他有专门定义的操作表头和表尾元素的方法可以当作堆栈队列和双向队列使用。
ArrayList与linkList之间的差别 ArrayList进行查询时可以通过下标的方式快速找到对应内容时间系数为1,但是他在进行插入时相对会比较慢需要将插入位置后面的数组全部都往后移动对应的位数删除一样向前移动对应位数
较常适用于查多改少的场景
linkList链表结构他是以这种结构展示如果需要进行查询时需要遍历所有的数据进项查询相对比较复杂而进行数据插入时只需要将pre指向上一个数据的nextnext指向下一个数据pre。他的时间系数也是为1
较常使用于查少改多的场景
Vector 也是通过数组实现。不同的是它支持线程的同步每个时刻只能有一个线程对他进行修改因此同步花费的时间会使Vector相比较于ArrayList要慢。他是线程安全的
List总结 List和数组类似可以动态增长根据实际存储的数据的长度自动增长List的长度。查找元素效率高插入删除效率低因为会引起其他元素位置改变 List接口是一个有序的 可以有重复元素的 使用场景的选择: 对于需要快速插入、删除元素则需使用LinkedList。 对于需要快速访问元素则需使用ArrayList。 List只能被一个线程操作如果是多线程环境List可能同时被多个线程操作造成错误 考虑使用同步的类如Vector。
作者无名小辈day 链接https://juejin.cn/post/7014007733074526221 来源稀土掘金 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
Set set也是实现collection接口
Set中值不能重复对象相等性本质是对象hashcode值判断的。
Set总结
不允许存储重复元素根据重写hashCode()和equals()方法来判断是不是同一对象。没有索引没有带索引的方法所以也就不能使用普通for循环。 可以看出Map接口与Collection接口没有任何关系 是与Collection接口同等级的 是第二大集合操作接口 Map是键值对集合 以 keyvalue保存是成对出现的其中的key是唯一的标识 使用Collection集合就不容易保存 但是使用键值对的方式就比较简单 map中有HashMap实现类 2.1 HashMap 基于 hash 表的 Map 接口实现非线程安全高效支持 null 值和 null 键 2.2 HashTable 线程安全低效不支持 null 值和 null 键