首页 > 其他分享 >Collections

Collections

时间:2023-12-20 21:44:58浏览次数:32  
标签:10 顺序 元素 --- 线程 Collections 排序

JDK8.0对集合进行有优化 Collection 表示一组对象,这些对象也称为 collection 的元素。 | List : 元素可以重复 ; 保证插入顺序和取出顺序一致 | ArrayList : 数组结构 查询快,增删效率略低 线程不安全的 容量不够时,按自身的50%进行扩容 10 ---> 15 ---> 22 JDK8.0与7.0中 ArrayList的区别 ? JDK7.0 : 在使用空参构造器创建ArrayList对象时,直接开辟了 10个 空间,用来存储元素 JDK8.0 在使用 空参构造器创建ArrayList对象时,先创建的空数组,在使用 add函数添加第一个元素时,才开辟10个的空间 | Vector : 数组结构 线程安全 容量不够时,按自身的100%进行扩容 10 ---> 20 ---> 40 | LinkedList : 链表结构(双向链表) : 冰糖葫芦 线程不安全 查询慢,增删快 | Set : 元素唯一 ; 不保证插入顺序和取出顺序一致 | HashSet : 哈希表结构 线程不安全 | Hashtable : 哈希表结构 线程安全 | TreeSet : 二叉树结构 线程不安全 会对元素进行排序 注意 : 集合中的 contains 函数 , remove 函数 以及 indexOf , lastIndexOf 函数会根据集合中的元素的equals函数进行判断

Consumer : 消费型接口 : 有来无回 void accept(T t); Supplier : 供给型接口 : T get(); Function : 函数型接口 : 有来有往 R apply(T t); Predicate : 断言型接口 : 条件 boolean test(T t);

内部迭代 : 循环在底层 外部迭代 : 自己写循环

 

Collections : 集合的工具类 sort() Collection 表示一组对象,这些对象也称为 collection 的元素。 | List : 元素可以重复 ; 保证插入顺序和取出顺序一致 ; 序列/列表 | ArrayList : 数组结构 查询快,增删效率略低 线程不安全的 容量不够时,按自身的50%进行扩容 10 ---> 15 ---> 22 | Vector : 数组结构 线程安全 容量不够时,按自身的100%进行扩容 10 ---> 20 ---> 40 | LinkedList : 链表结构(双向链表) : 冰糖葫芦 线程不安全 查询慢,增删快

 

可变参数列表 : 1.本质就是数组 2.如果存在精确匹配,优先执行精确匹配 3.可变参数列表必须位于所有参数的后面

 

| Set : 元素唯一 ; 不保证插入顺序和取出顺序一致 | HashSet : 哈希表结构 线程不安全 唯一原则 : 先使用 元素 的 hashCode函数进行比较 , 如果不同,直接存储; 如果相同,则调用元素的 equals() 函数进行判断, 如果不同直接存储,相同舍弃 | LinkedHashSet : 哈希表 + 链表 保证插入顺序和取出顺序一致 | TreeSet : 二叉树结构 线程不安全 会对元素进行排序

 

TreeSet : 对元素进行排序 1.自然排序 : 要求 元素类型实现 Comparable<T> 接口 2.定制排序/自定义排序 : 创建TreeSet对象时需要提供 比较器对象(Comparator<T>) 注意 : 两种排序同时存在,优先按 定制排序进行排序

标签:10,顺序,元素,---,线程,Collections,排序
From: https://www.cnblogs.com/yuec5067/p/17917653.html

相关文章

  • Collections工具类的使用
    packagebackend02;//Collections工具类的使用importjava.util.ArrayList;importjava.util.Collections;publicclassPractice07{publicstaticvoidmain(String[]args){ArrayList<String>list=newArrayList<>();//语法格式:......
  • Java之可变参数和Collections的详细解析
     1.可变参数在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化.格式:修饰符返回值类型方法名(参数类型...形参名){}底层:其实就是一个数组好处:在传递数据的时候,省的我们自己创建数组并添加元素了,JDK底层帮我们自动创建数组并添加元素了......
  • JAVA - Collections
    publicclassTest1{publicstaticvoidmain(String[]args){Students=newStudent("张三",18,"唱歌");Students1=newStudent("李四",27,"跳舞");Students2=newStudent("王五",26,&q......
  • collections.Counter()统计list中出现次数
    要查找lines列表中重复的行并将其打印出来,您可以使用Python的collections.Counter()函数来统计每行出现的次数。然后,遍历统计结果,找出出现次数大于1的行,并打印出来。以下是一个示例代码:importosfromcollectionsimportCounterfile_dir="xxx"withopen(file_dir,"r")......
  • python 中的 collections 模块:常用数据结构和工具详解
    Python的collections模块提供了许多有用的数据结构,超越了标准的内置数据类型。这些数据结构解决了各种常见的编程问题,包括但不限于高效的容器类型、特定目的的容器、默认值字典等。让我们深入了解其中的几个重要数据结构和工具。1.defaultdict:带有默认值的字典defaultdict是d......
  • Java程序员必备技能:Collections工具类深度解析!
    在之前的文章中,我们学习了单列集合的两大接口及其常用的实现类;在这些接口或实现类中,为我们提供了不少的实用的方法。本篇文章我们来介绍一种java开发者为我们提供了一个工具类,让我们更好的来使用集合Collections工具类Collections是一个操作Set,List,Map等的集合工具类它提......
  • Collections工具类
    Collection工具类Collections工具类,里面的方法全是静态方法.1.二分查找List语法:static<T>intbinarySearch(List<?extendsComparable<?superT>>list,Tkey):使用二叉搜索算法搜索指定对象的指定列表。举个例子:1publicclassTest{2publicstaticvoi......
  • 必须为接口 System.Collections.IComparer 实现
    C#codes:publicclassDateComparer:IComparer{publicintCompare(objectx,objecty){if((xasRadDate).Date<(yasRadDate).Date){return-1;}elseif(......
  • Collections工具类、(Arrasy.asList(xxx)的结果List是一个受限集合,不能添加和删除元素
     Arrasy.asList(arr)的结果List是一个受限集合,不能添加和删除元素  ......
  • Collections
     ArrayList相关Collections.synchronizedList(newArrayList<>())publicclassArrayList<E>extendsAbstractList<E>implementsList<E>,RandomAccess,Cloneable,java.io.Serializable{}publicclassCollections{......