首页 > 其他分享 >如何将1千万个数据加到List中

如何将1千万个数据加到List中

时间:2023-07-25 19:24:01浏览次数:22  
标签:千万个 HashSet ArrayList 元素 List retainAll 加到 查找

1. 如何将1千万个数据加到List中

ArraysList可以存下,但是效率低,可以使用LinkedList。

2. 两个1千万List如何找到,A中有,但B中没有的元素。

可以将List转成HashSet,使用HashSet的retainAll方法。retainAll作用是保留集合中与另一个集合相同的元素,即取交集

3. 使用HashSet的retainAll()方法与直接使用ArrayList的retainAll()方法在效率上会有一定的差异吗?

HashSet的retainAll()方法比ArrayList的retainAll()方法更快

(1) 查找速度:HashSet基于哈希表,查找元素的时间复杂度平均为O(1),而ArrayList基于数组,查找元素的时间复杂度为O(n)。因此,在HashSet中进行查找操作更快。

(2) 去重:使用HashSet可以确保两个集合中的元素没有重复,因为HashSet本身不允许存储重复元素。而ArrayList在保留交集时,可能需要进行额外的去重操作,增加了额外的开销。

(3) 集合操作:HashSet的retainAll()方法是基于集合操作的,通过哈希表的交集运算来快速得到结果。而ArrayList的retainAll()方法是基于循环遍历来实现的,效率相对较低。

标签:千万个,HashSet,ArrayList,元素,List,retainAll,加到,查找
From: https://www.cnblogs.com/yifanSJ/p/17580749.html

相关文章

  • 聊聊List、Set、Map
    1.List哪些实现类JavaList一共三个实现类分别是ArrayList、Vector和LinkedList。(1)ArrayList是最常见用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已有数组的数据复制到......
  • linq lambda 两个list求交集:根据每一项模糊匹配(contains) 并且带出where过滤条件里
    直接使用 varresult=list1.Where(str1=>list2.Contains(str))是不行的,这个要求两个list的string值必须有相等的才行例如list1中有apple,那么list2中必须有apple才能匹配,而list2中只有app所以匹配不了 解决办法:List<string>list1=newList<string>{"apple","......
  • CMake Error at CMakeLists.txt: No CMAKE_CXX_COMPILER could be found.
    系统环境:Ubuntu22.04.11.问题发生--TheCcompileridentificationisGNU11.3.0--TheCXXcompileridentificationisunknown--DetectingCcompilerABIinfo--DetectingCcompilerABIinfo-done--CheckforworkingCcompiler:/usr/bin/cc-skipped--......
  • list agg cause ORA-06502 PL/SQL: numeric or value error
    http://www.idb-stock.net/idb/2011/07/05/204.htmlora-06502错误主要是指数据字或值错误,包括以下子类型:字符到数据值的转换错误、字符串缓冲区太小、数值精度太高等。对空集合的调用,会报ora-06502错误declaretypecnt_typistableofnumberindexbybinary_integer;v_c......
  • android开发 - ListView
    android中很多应用都是用ListView来显示数据就像系统中的设置里面,每一行,就是构成的ListViewprivateListViewlistview;privatePersonServiceperson;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstan......
  • 用Java集合中的Collections.sort方法对list排序的两种方法
    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下:   <strong>/**02 *根据order对User排序03 */04 publicclassUserimplementsComparable{05 privateStringname;06 privateIntegerorder;07 publicStringgetN......
  • 数组(Array)和链表(List)
    推荐https://cloud.tencent.com/developer/article/2304343引言在Java编程中,数组(Array)和链表(List)是常用的数据结构,用于在内存中存储和组织数据。两者都有各自的特点和适用场景,本文将深入比较数组与链表的区别,并结合代码示例进行详细解释。数组(Array)定义和特点数组是一种固定......
  • ValueNotifier<T> ValueListenableBuilder<T> Stack() positioned.fill()
     1、在Column下面增加可以滚动的Row2、在widget外部控件其内部的变量ValueNotifier<T> ValueListenableBuilder<T>(valueListenable:...,builder:()=>)  import'package:flutter/material.dart';classSettingsPageextendsStatelessWidget{finalint_cou......
  • vue项目使用vue-virtual-scroll-list虚拟滚动超多千万条数据 cv可用案例
    当我们有大量数据需要显示在列表中时,传统的滚动列表会将所有数据渲染到DOM中,导致性能下降和内存占用增加。虚拟滚动列表通过仅渲染当前视窗内可见的一小部分数据,动态地根据滚动位置更新列表内容,从而实现更高效的列表渲染。vue-virtual-scroll-list是一个用于Vue.js的虚拟滚动......
  • Python list里面定义自定义类型
    PythonList中定义自定义类型在Python中,List(列表)是一种非常常见且强大的数据结构。它允许我们以有序的方式存储和访问多个元素。在List中,我们可以存储各种类型的数据,包括整数、浮点数、字符串等。但是,Python的灵活性还允许我们在List中存储自定义的数据类型,从而提供更高的灵活性和......