社区
Java SE
帖子详情
大数据量的列表用什么数据结构适合???
askquestion_003
2012-03-13 07:03:44
有2万组数据,每组数据包括三项,两项为char(20),一项为int型,并且这2万项数据是具有先后顺序的
且每网这里面增加一组数据,就需要把旧的第一组数据删除掉
请问我应该用什么样的数据结构好些?
1.把这三项数据构成一个类,还是直接Object[3] ?
2.用List还是Map或其它?
...全文
431
11
打赏
收藏
大数据量的列表用什么数据结构适合???
有2万组数据,每组数据包括三项,两项为char(20),一项为int型,并且这2万项数据是具有先后顺序的 且每网这里面增加一组数据,就需要把旧的第一组数据删除掉 请问我应该用什么样的数据结构好些? 1.把这三项数据构成一个类,还是直接Object[3] ? 2.用List还是Map或其它?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ArayChou
2012-03-14
打赏
举报
回复
如果是实际工作,直接把数据放在数据库里,使用SQL语句得到想要的结果即可.没有必要自己实现.
而且,如果自己不是很牛,也容易出问题.
学习研究除外
MiceRice
2012-03-14
打赏
举报
回复
◎用Oject[]数组好还是类定义3个属性好?两项为char(20),一项为int型
从性能上来说没啥差异,从规范化来说还是定义成类属性好。
◎更新频率大概在5-10分钟之间
其实访问量更重要,如果你每5~10分钟就要从数据库中将10W行全部重新装载一次,然后在这期间只需要依次遍历一次就够,那当然就显得多此一举了。
askquestion_003
2012-03-14
打赏
举报
回复
[Quote=引用 7 楼 ldh911 的回复:]
“其它要求:需要依次遍历2万组数据”
依次遍历的话,LinkedList就能解决了,当然ArrayList也能很好解决,甚至数组都能很好解决。
“2万条的list大概要占多少内存”
2W条本身倒不算多,但还要看你每行多大,这个自己完全可以估算出来,比如你每行是1K大小,那么2W×1K总共大概就20MB的空间,而32bit的JVM大约可以配置1.5GB内存,所以20MB大小基本上完全不……
[/Quote]
另外:
1.用Oject[]数组好还是类定义3个属性好?两项为char(20),一项为int型
2.更新频率大概在5-10分钟之间
京郊-金手指
2012-03-14
打赏
举报
回复
顶
[Quote=引用 7 楼 ldh911 的回复:]
“其它要求:需要依次遍历2万组数据”
依次遍历的话,LinkedList就能解决了,当然ArrayList也能很好解决,甚至数组都能很好解决。
“2万条的list大概要占多少内存”
2W条本身倒不算多,但还要看你每行多大,这个自己完全可以估算出来,比如你每行是1K大小,那么2W×1K总共大概就20MB的空间,而32bit的JVM大约可以配置1.5GB内存,所以20MB大小基本上完全不……
[/Quote]
MiceRice
2012-03-14
打赏
举报
回复
“其它要求:需要依次遍历2万组数据”
依次遍历的话,LinkedList就能解决了,当然ArrayList也能很好解决,甚至数组都能很好解决。
“2万条的list大概要占多少内存”
2W条本身倒不算多,但还要看你每行多大,这个自己完全可以估算出来,比如你每行是1K大小,那么2W×1K总共大概就20MB的空间,而32bit的JVM大约可以配置1.5GB内存,所以20MB大小基本上完全不够看。
“会不会得不偿失”
从你目前介绍的信息,无法得出判断,要根据使用场景、访问频度、更新频度等才能判断。
askquestion_003
2012-03-13
打赏
举报
回复
这2万条记录是从数据库查出来,打算存在list里并将其缓存起来,2万条的list大概要占多少内存?这么做会不会得不偿失
Cactus_hxk
2012-03-13
打赏
举报
回复
[Quote=引用 2 楼 ldh911 的回复:]
引用楼主 askquestion_003 的回复:
且每网这里面增加一组数据,就需要把旧的第一组数据删除掉
看起来是个循环队列。
你还有其它什么要求么?比如迅速用下标定位某个元素?
如果没有快速定位要求,建议用 LinkedList,如果有,建议用 ArrayList 模拟循环队列。
[/Quote]
顶
askquestion_003
2012-03-13
打赏
举报
回复
其它要求:需要依次遍历2万组数据
Hunter_1
2012-03-13
打赏
举报
回复
[Quote=引用 2 楼 ldh911 的回复:]
引用楼主 askquestion_003 的回复:
且每网这里面增加一组数据,就需要把旧的第一组数据删除掉
看起来是个循环队列。
你还有其它什么要求么?比如迅速用下标定位某个元素?
如果没有快速定位要求,建议用 LinkedList,如果有,建议用 ArrayList 模拟循环队列。
[/Quote]
顶
MiceRice
2012-03-13
打赏
举报
回复
[Quote=引用楼主 askquestion_003 的回复:]
且每网这里面增加一组数据,就需要把旧的第一组数据删除掉
[/Quote]
看起来是个循环队列。
你还有其它什么要求么?比如迅速用下标定位某个元素?
如果没有快速定位要求,建议用 LinkedList,如果有,建议用 ArrayList 模拟循环队列。
看那边
2012-03-13
打赏
举报
回复
封装成object。放入list。
为嘛不存入数据库?
Python实战--内置
数据结构
深入视频精讲
本课程的Python环境为:Python3.7,Jupyter 4.4.0,CentOS 7.xPython爬虫语言是 目前最火的语言之一。本课程为Python教程的内置
数据结构
篇,通篇围绕Python的
数据结构
展开讲解,包括七大
数据结构
:字符串、
列表
、元组、集合、字典、bytes、bytearray,最后通过3个经典案例:素数求解,杨辉三角,矩阵转置来强化大家的学习成果。同时通过大
量
具像化的实际案例来告诉大家每种
数据结构
的应用场景,为什么需要这么来做。让同学们能够从学习中感受到知识的建立,不让每一个知识点变成孤岛,从而导致学完后还是一头雾水。学习完本课程后,同学们可以有效的理解
数据结构
内在机理,深入掌握每一种
数据结构
在实际应用中的典型案例。
数据结构
和算法(Java)
程序 =
数据结构
+ 算法 程序是为了解决实际问题而存在的。然而为了解决问题,必定会使用到某些
数据结构
以及设计一个解决这种
数据结构
的算法。如果说各种编程语言是程序员的招式,那么
数据结构
和算法就相当于程序员的内功。编程实战算法,不是念PPT,我们讲的就是实战与代码实现与企业应用。程序 =
数据结构
+ 算法 ——图灵奖得主,计算机科学家N.Wirth(沃斯)作为程序员,我们做机器学习也好,做python开发也好,java开发也好。有一种对所有程序员无一例外的刚需 —— 算法与
数据结构
日常增删改查 + 粘贴复制 + 搜索引擎可以实现很多东西。同样,这样也是没有任何竞争力的。我们只可以粘贴复制相似度极高的功能,稍复杂的逻辑没有任何办法。语言有很多,开发框架更是日新月异3个月不学就落后我们可以学习很多语言,很多框架,但招聘不会考你用5种语言10种框架实现同一个功能。真正让程序员有区分度,企业招聘万年不变的重点 —— 算法与
数据结构
。算法代表程序员水平的珠穆朗玛。如果说各种编程语言是程序员的招式,那么
数据结构
和算法就相当于程序员的内功。 想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。 开这个系列的目的是为了自我不断积累。不积跬步无以至千里嘛。
数据结构
基础系列(10):外部排序
数据结构
课程是计算机类专业的专业基础课程,在IT人才培养中,起着重要的作用。课程按照大学计算机类专业课程大纲的要求,安排教学内容,满足需要系统学习
数据结构
的人。系列课程包含11个部分,本课为第10部分外部排序。外部排序针对数据
量
很大时,排序过程必须要在内、外存之间交换数据时的应用,介绍磁盘排序和磁带排序的相关算法。
Python
数据结构
与算法面试(上)
本课程使用Python 3.7进行讲解,更高的Python版本仍然可用。 本课程的程序
适合
于Windows、macOS和Linux平台。学员不必纠结操作系统平台和Python的版本。Python是跨平台的。从Python3.5开始,兼容性非常高。《Python
数据结构
与算法面试》系列课程不仅详细讲解了
数据结构
的核心知识点,也同样可以用于相关领域的面试准备,因为本系列课程中包含了大
量
各大厂的面试原题,以及经过改进的题目。 这一系列课程主要包括如下内容递归、数组、字符串、栈、队列和双端队列、链表、树、优先级队列、映射、哈希表和跳跃表、搜索树、排序与选择、文本处理、图
用Python中的Pandas处理数据
内容介绍1.大
量
练习Series
数据结构
的基础操作。 2.大
量
练习DataFrame
数据结构
的基础操作。 3.将工作中的数据分析工作用Pandas做分析测试。 章节介绍第1章 讲解Pandas中Series数据的各种基本操作,为后面顺利做数据分析打基础。第2章 讲解Pandas中DataFrame数据的各种基本操作,为后面顺利做数据分析打基础。第3章 对Series和DataFrame的索引进一步做详细讲解。这些都是能学习Pandas数据处理的重要基础。第4章 如果快速实现对数据的各分析操作,快速得到想要的报表。
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章