Map、List集合类的清空使用clear还是重新new呢

问题描述

各位有经验的Javaer,请问使用Map、List这种集合类做缓存时,需要每天清空一次数据,那么我是用集合自带的clear方法好呢,还是直接重新new一个新的集合,让原来的集合等待gc释放好呢?如果有这方面经验的朋友说说各种方法的利弊,以及企业中常用的解决方案 问题补充:silentJesse 写道

解决方案

量大的时候用clear好 ,量小的时候都可以用new 的话相对比较会耗资源,因为map也是事实上也是用数组的,当map的容易也就是capacity不够时,会自动扩大到原来的capacity*负载因子,这时就需要搬数据了,即从原来的小数组搬到原来的大数组上,这是很耗资源的
解决方案二:
Iterator 跟list map set 比占用内存是最小的.
解决方案三:
大量数据你用迭代吗....
解决方案四:
忘 高手来解答一下..呵呵
解决方案五:
引用如果原来的cache很大,再new一个一样大的。。也可能溢出是的没错..
解决方案六:
如果原来的cache很大,再new一个一样大的。。也可能溢出..
解决方案七:
引用那如果我new的时候直接new一个原大的,是不是可以?主要我考虑clear也比较好资源,我看它的实现也是轮询吧而且还有一个并发问题,如果正在clear的时候,这个map又要被用,是不是会有问题?直接new会比较快速吧,只是占用内存了,等gc后应该就会把原来的内存回收掉也是...用hashtable...是线程安全。但你又有一个问题。说clear比较吃资源

时间: 2024-07-30 23:07:04

Map、List集合类的清空使用clear还是重新new呢的相关文章

STL中的常用的vector,map,set,sort, list用法笔记 .

原帖地址:http://hi.baidu.com/yanfei_1/blog/item/a0a538331f5256f91a4cffba.html C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库.容器往往包含同一类型的数据.STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等..一. vector1.声明:          一个vector类似于一个动态的一维数组.          vector<int>

STL中map用法详解

std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下std map内部数据的组织,std map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在std map内部所有的数据都是有序的,后边我们会见识到有序的好处. 下面举例说明什么是一对一的数据映射.比如一个班级中,每个

浅谈c++中的stl中的map用法详解_C 语言

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处. 下面举例说明什么是一对一的数据映射.比如一个班级中,每个学生的学号跟他的姓名就存在着一一

详解java中的Collections类_java

一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*; 一.动态.有序.可变大小的一维数组Vector与ArrayList  Collectio

JVM第三篇(简单demo)

本来写完前面两篇JVM,已经不再想写这类似的东西,因为很多知识点很难吃透,即使写出来也很难让人理解,即使理解还不如看官方资料,不过还是鼓起勇气写下这篇文章,本文主要是demo去理解一些JVM的内存知识,版本为hotspot的1.6.24版本,不过本文不讲指令,只是模拟一些东西,类似于出题目,和大家一起来做下:本文几个简单实验不能说明所有问题,仅仅是分享一下理解JVM的内在和一些不可告人的秘密,以及告诉分享一些方法,以后可以自己做实验去扩展.   1.首先来模拟一个简单的溢出,代码很简单,我们也把

基于openlayers的最短路径规划

之前的文章讲到了如何构建空间数据库,矢量数据如何入库,如何构建拓扑网络,如何自定义查询函数,如何构建wms服务,本文讲解如何基于openlayers晚上最短路径规划功能. 一.基于openlayers3 1.构建网页,这里只是一个简单的网页 <!DOCTYPE html> <html lang='en'> <head> <meta charset='utf-8'/> <title>indoornavigation</title> &l

Flume 使用学习小结

概述 在做埋点数据离线存储到odps中,用到了Flume.一边使用,一边学习了下Flume.其中感受到Flume确实易伸缩.易扩展.其中的组件都可以根据自己的业务特点方便的自定义使用. Flume可进行大量日志数据采集.聚合和并转移到存储中,并提供数据在流转中的事务机制: 可适用场景:日志--->Flume--->实时计算(如MQ+Storm) .日志--->Flume--->离线计算(如ODPS.HDFS.HBase).日志--->Flume--->ElasticSe

javascript基础知识大集锦(一) 推荐收藏_基础知识

next:js正则表达式,闭包,apply,callee,事件相关函数,Cookie等 1.javascript的数组API //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.length; //shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 //unshift

基于jQuery下拉选择框插件支持单选多选功能代码_jquery

由于最近项目的需求,需要做一个下拉选择框的插件,支持单选显示表单数据,多选显示表格数据,该插件主要运用了jQuery与jqgrid以及easyui. 下面给大家展示下效果图,如果大家感觉还不错,请参考实现代码: 多选:呈现列表 具体代码如下所示: /** *下拉框插件-chooseList *调用插件的方式以及格式: * 1.首先你需要创建一个div面板,给div定义ID * 2.在你所需要的地方调用插件: * 参数说明: * $("#divID").chooseList({ * qu