- Java的CopyOnWriteArrayList
xbmchina
简介ArrayList并不是线程安全的,在读线程在读取ArrayList的时候如果有写线程在写数据的时候,基于fast-fail机制,会抛出ConcurrentModificationException异常,也就是说ArrayList并不是一个线程安全的容器。那么并发的情况下,这就有了CopyOnWriteArrayList这个东西。下面主要以下几个方面学习CopyOnWriteArrayList
- Java List Iterator ConcurrentModificationException异常原因
二十六画生的博客
JavaSSMJavaListIteratorConcurrentMod
异常原因packagecom.company;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;/***@Authoryouguess*@Date2021/1/712:33*@Version1.0*@Desc*/publicclassMain26{publicstaticvoidmain(String[]
- 【Java从入门到放弃 之 ConcurrentModificationException】
ThetaarSofVenice
#Java从入门到放弃java开发语言
ConcurrentModificationExceptionConcurrentModificationException探索ConcurrentModificationException解决问题总结ConcurrentModificationExceptionConcurrentModificationException是Java中的一种运行时异常,通常发生在使用迭代器遍历集合(如ArrayL
- SynchronizedMap 和 ConcurrentHashMap 的区别
yuren_xia
后端技术java
SynchronizedMap和ConcurrentHashMap的区别1.SynchronizedMap定义:通过Collections.synchronizedMap()包装普通HashMap,实现线程安全。锁机制:使用对象级锁(整个Map加锁)。性能:高并发下性能差(锁竞争激烈)。迭代器:迭代时需手动加锁,否则会抛出ConcurrentModificationException。适用场景:低
- java.util.ConcurrentModificationException
KK_crazy
javapythonwindowsstablediffusion开发语言人工智能
错误之王:Java并发修改异常的终极解决方案在Java编程的世界里,java.util.ConcurrentModificationException(并发修改异常)是一个让人头疼的问题。它通常发生在我们尝试在遍历集合的同时修改集合内容时。这个异常就像是程序中的“错误之王”,一旦出现,就意味着你的程序可能正在遭受并发问题的困扰。今天,我将带你深入探讨这个异常的根源,并提供一个根本性的解决方案。20
- kotlin MutableList synchronized
CicadaMay
Android学习
众所周知,ArrayList一不小心就会报ConcurrentModificationException错误,于是尝试用Collections.synchronizedCollection解决valtabList:MutableList=mutableListOf()tabList.add()…vallist=Collections.synchronizedCollection(this)sync
- Java中并发修改异常如何处理
六七_Shmily
javajavawindowspython
在Java中,ConcurrentModificationException(并发修改异常)是遍历集合时最常见的错误之一。它发生在迭代过程中直接修改集合结构(添加/删除元素)时,与是否多线程无关。以下是详细的处理方案:一、异常触发场景Listlist=newArrayListiterator=list.iterator();while(iterator.hasNext()){Strings=ite
- Java中各种线程安全的 List的使用场景和区别
June561
java
Java并发编程中,提供了多种线程安全的List,每种适用于不同的场景。以下是常见的并发List类及其特点:1.CopyOnWriteArrayList适用场景:读多写少(如缓存、配置更新等)底层原理:写操作时复制整个数组,然后替换旧数组,保证读写不会冲突。优点:读操作无锁,性能高。迭代器不会抛出ConcurrentModificationException,即弱一致性。缺点:写操作昂贵(每次写都
- Java ConcurrentModificationException异常原因和解决方法
刘星石
java
原文出处:海子在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。以下是本文目录大纲:一.ConcurrentModificationException异常出现的原因二.在单线程环境下的解决办法三.在多线程环境下的解
- 快速失败(fail-fast)和安全失败(fail-safe)的区别
代码的余温
java集合类多线程
在Java中,快速失败(Fail-Fast)和安全失败(Fail-Safe)是集合类(Collection)在迭代过程中处理并发修改的两种不同策略,二者的核心区别在于对并发修改的感知机制与容错性。一、快速失败(Fail-Fast)核心特性:一旦检测到集合在迭代过程中被修改(除通过迭代器自身的方法),立即抛出ConcurrentModificationException,终止程序。
- 如何在多线程环境下避免快速失败异常?
Mr.闻吉安
javawindows开发语言
在多线程环境下,可通过以下几种方式避免快速失败(Fail-Fast)异常:1.使用线程安全的集合类Java提供了多种线程安全的集合类,它们在迭代时不会抛出ConcurrentModificationException。示例:使用CopyOnWriteArrayListjavaimportjava.util.Iterator;importjava.util.List;importjava.util.
- 【Java】已解决java.util.ConcurrentModificationException异常
屿小夏
javapython开发语言
个人简介:某不知名博主,致力于全栈领域的优质博客分享|用最优质的内容带来最舒适的阅读体验!文末获取免费IT学习资料!文末获取更多信息精彩专栏推荐订阅收藏专栏系列直达链接相关介绍书籍分享点我跳转书籍作为获取知识的重要途径,对于IT从业者来说更是不可或缺的资源。不定期更新IT图书,并在评论区抽取随机粉丝,书籍免费包邮到家AI前沿点我跳转探讨人工智能技术领域的最新发展和创新,涵盖机器学习、深度学习、自然
- 【Java】解决Java报错:ConcurrentModificationException
E绵绵
Everythingjava开发语言
文章目录引言1.错误详解2.常见的出错场景2.1遍历过程中修改集合2.2使用`Iterator`进行删除操作3.解决方案3.1使用`Iterator`的`remove`方法3.2使用`CopyOnWriteArrayList`3.3使用`synchronized`块4.预防措施4.1使用线程安全的集合类4.2使用合适的遍历和修改方法4.3单元测试结语引言在Java编程中,ConcurrentMod
- 重学Java基础篇—什么是快速失败(fail-fast)和安全失败(fail-safe)?
Remember_Ray
重学Java系列java
快速失败(fail-fast)和安全失败(fail-safe)是两种不同的迭代器设计策略,主要用于处理集合(如List、Map)在遍历过程中被修改的场景。它们的核心区别在于对并发修改的容忍度和实现机制。1.快速失败(fail-fast)定义快速失败是一种“零容忍”的机制。当集合在遍历过程中被修改(如添加、删除元素),迭代器会立即抛出ConcurrentModificationException,强
- StarRocks关于ConcurrentModificationException 问题的解决
鸿乃江边鸟
大数据StarRocksSQLstarrocks大数据sql
背景本文基于StarRocks3.1.7目前在基于Starrocks做一些数据分析的操作(主要是做一些简单的查询),同事遇到了一些并发的问题:ontent:2024-11-2707:04:34,048WARN(starrocks-mysql-nio-pool-214933|3593819)[StmtExecutor.execute():643]executeException,sqlSELECTd
- 关于将HashMap替换原有Map的key保持value不变报错java.util.ConcurrentModificationException的处理方案
梦岚如雪
轮子库之HashMapjava工具类java开发语言后端HashMap
前言由于苦逼的在公司支持上线,在等待es集群分片完成过程,实在闲的无聊,将之前本地Notion记得一些笔记扔上来一些打发下时间吧( ̄. ̄)需求有个类似下面的数据为Map>>,其中key为资源id,value为List>,{"4757637007194717896":[{"oracleTableSpaceSize":"30000","oracleTableName":"System4","oracl
- Java集合中fail-fast和fail-safe机制详解
橡 皮 人
Java集合java集合的fail机制
在使用集合时候,大家应该都遇到过或听过并发修改异常(ConcurrentModificationException),这其实是Java集合中的一种fail-fast机制,为了避免触发fail-fast机制,Java中还提供了一些采用fail-safe机制设计的集合类,本篇文章就系统的介绍一下这两种机制。一、fail-fast机制1.1什么是fail-fast机制简单的说,这就是系统设计的一种理念,
- 常见Java集合
人才瘾大
java数据结构哈希算法
1.fail-fast和fail-safe机制fail-fast(快速失败)和fail-safe(安全失败)是两种在遍历集合时处理并发修改的策略。1.1.fail-fast机制遍历集合时,如果发现集合被修改(除了通过迭代器自身的remove方法),会立即抛出ConcurrentModificationException异常。这种机制的目的是快速检测到不一致性并报告错误。如,使用ArrayList时
- Java中处理并发修改异常
dreammaker阿甘
JAVAjavapythonwindows
在Java中,当一个或多个线程正在遍历集合对象时,如果同时有线程试图修改该集合(增加、删除元素等),就可能会抛出`ConcurrentModificationException`。这种异常主要发生在使用迭代器(Iterator)遍历集合的过程中。处理这种并发修改异常的策略主要有以下几种:###1.使用并发集合Java的`java.util.concurrent`包提供了一些线程安全的集合,如`Co
- Java基础常见面试题总结-集合(二)
此花本应与她
java
迭代器Iterator是什么?Iterator模式用同一种逻辑来遍历集合。它可以把访问逻辑从不同类型的集合类中抽象出来,不需要了解集合内部实现便可以遍历集合元素,统一使用Iterator提供的接口去遍历。它的特点是更加安全,因为它可以保证,在当前遍历的集合元素被更改的时候,就会抛出ConcurrentModificationException异常。publicinterfaceCollection
- ConcurrentModificationException异常解决办法
李die喋
有关java.util.ConcurrentModificationException最近在写抓包项目,一直困扰我的问题就是安卓多线程的问题。因为抓取到的数据包是大量的,我的想法是拿到一个数据包就开一个socektchannl和服务器进行对接。但是就在想会不会cpu的资源占有率太高出现OOM,果然出现了这样的问题。将线程放到了线程池里面也出现了OOM,真的是让我有点不知所措,感觉自己对多线程这不会
- ConcurrentModificationException异常原因,解决方法,线程安全的单例模式
Rose J
Android开发之路单例模式javajvm
异常简介ConcurrentModificationException(并发修改异常)是基于java集合中的快速失败(fail-fast)机制产生的,在使用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了增删改,就会抛出该异常。快速失败机制使得java的集合类不能在多线程下并发修改,也不能在迭代过程中被修改。异常原因示例代码valelements:MutableList=mutabl
- 使用两种多线程模式消费Kafka数据
魏春雨
使用两种多线程模式消费数据KafkaProducer是线程安全的,然而KafkaConsumer却是非线程安全的。KafkaConsumer中定义了一个acquire(方法,用来检测当前是否只有一个线程在操作,若有其他线程正在操作则会抛出Concurrentmodifcationexception异常:java.util.ConcurrentModificationException:KafkaC
- Iterable和Iterator之间的区别以及延伸讨论
曾泽浩
本文会讨论几个问题Iterable和Iterator的区别讨论为什么需要Iterable和Iterator,只保留Iterator行不行迭代器遍历时,抛出ConcurrentModificationException的原因foreach语法糖验证首先看一下Iterable的定义publicinterfaceIterable{/***Returnsaniteratoroverelementsofty
- java集合ArrayList和HashSet的fail-fast与fail-safe以及ConcurrentModificationException
zlpzlpzyd
javajava
在java的集合工具类中,例如对ArrayList或者HashSet进行删除元素后再遍历元素时,会抛出ConcurrentModificationException异常。fail-fastArrayListpublicclassTestList{publicstaticvoidmain(String[]args){ArrayListlist=newArrayListlist=newArrayLis
- java.util.ConcurrentModificationException理解
Alex老夫子
javajavakotlinConcurrentModificationException
java.util.ConcurrentModificationException这个异常想必大家都遇到过,可以通过源码找到根因,容器类,比如ArrayList、HashMap、HashSet,循环方法中可以得知有个modCount发生变化,当同时遍历容器对象,同时增加或者删除元素,就会抛出ConcurrentModificationException,源码如下:@Overridepublicvo
- JUC并发编程-集合不安全情况以及Callable线程创建方式
666-LBJ-666
JUC并发编程多线程并发编程JUC
6.集合不安全1)List不安全//java.util.ConcurrentModificationException并发修改异常!publicclassListTest{publicstaticvoidmain(String[]args){ListarrayList=newArrayList{arrayList.add(UUID.randomUUID().toString().substring
- Iterator迭代器操作集合元素时,不能用集合删除元素
孤独斗士
windows
在使用Iterator迭代器对集合中的元素进行迭代时,如果调用了集合对象的remove()方法删除元素或者调用add()方法添加元素之后,继续使用迭代器遍历元素,会出现异常(java.util.ConcurrentModificationException)。importjava.util.ArrayList;importjava.util.Iterator;importjava.util.fun
- java linkedlist 线程安全_LinkedList线程安全问题
陶晓博
javalinkedlist线程安全
Java中LinkedList是线程不安全的,那么如果在多线程程序中有多个线程访问LinkedList的话会出现什么问题呢?抛出ConcurrentModificationExceptionJDK代码里,ListItr的add(),next(),previous(),remove(),set()方法都会跑出ConcurrentModificationException。finalvoidcheck
- 集合线程安全
MaoSource
java线程线程安全
集合线程安全常用的集合类型如ArrayList,HashMap,HashSet等,在并发环境下修改操作都是线程不安全的,会抛出java.util.ConcurrentModificationException异常,这节主要记录如何在并发环境下安全地修改集合数据。List举个ArrayList线程不安全的例子:publicclassCollectionTest{publicstaticvoidmai
- windows下源码安装golang
616050468
golang安装golang环境windows
系统: 64位win7, 开发环境:sublime text 2, go版本: 1.4.1
1. 安装前准备(gcc, gdb, git)
golang在64位系
- redis批量删除带空格的key
bylijinnan
redis
redis批量删除的通常做法:
redis-cli keys "blacklist*" | xargs redis-cli del
上面的命令在key的前后没有空格时是可以的,但有空格就不行了:
$redis-cli keys "blacklist*"
1) "blacklist:12:
[email protected]
- oracle正则表达式的用法
0624chenhong
oracle正则表达式
方括号表达示
方括号表达式
描述
[[:alnum:]]
字母和数字混合的字符
[[:alpha:]]
字母字符
[[:cntrl:]]
控制字符
[[:digit:]]
数字字符
[[:graph:]]
图像字符
[[:lower:]]
小写字母字符
[[:print:]]
打印字符
[[:punct:]]
标点符号字符
[[:space:]]
- 2048源码(核心算法有,缺少几个anctionbar,以后补上)
不懂事的小屁孩
2048
2048游戏基本上有四部分组成,
1:主activity,包含游戏块的16个方格,上面统计分数的模块
2:底下的gridview,监听上下左右的滑动,进行事件处理,
3:每一个卡片,里面的内容很简单,只有一个text,记录显示的数字
4:Actionbar,是游戏用重新开始,设置等功能(这个在底下可以下载的代码里面还没有实现)
写代码的流程
1:设计游戏的布局,基本是两块,上面是分
- jquery内部链式调用机理
换个号韩国红果果
JavaScriptjquery
只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this 因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象)
function create(type){
var element=document.createElement(type);
//this=element;
- 你订酒店时的每一次点击 背后都是NoSQL和云计算
蓝儿唯美
NoSQL
全球最大的在线旅游公司Expedia旗下的酒店预订公司,它运营着89个网站,跨越68个国家,三年前开始实验公有云,以求让客户在预订网站上查询假期酒店时得到更快的信息获取体验。
云端本身是用于驱动网站的部分小功能的,如搜索框的自动推荐功能,还能保证处理Hotels.com服务的季节性需求高峰整体储能。
Hotels.com的首席技术官Thierry Bedos上个月在伦敦参加“2015 Clou
- java笔记1
a-john
java
1,面向对象程序设计(Object-oriented Propramming,OOP):java就是一种面向对象程序设计。
2,对象:我们将问题空间中的元素及其在解空间中的表示称为“对象”。简单来说,对象是某个类型的实例。比如狗是一个类型,哈士奇可以是狗的一个实例,也就是对象。
3,面向对象程序设计方式的特性:
3.1 万物皆为对象。
- C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
aijuans
C/C++求职面试必备考点
找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。
后学保证每个写出来的结果都是自己在电脑上亲自跑过的,咱人笨,以前学的也半吊子。很多时候只能靠运行出来的结果再反过来
- 程序员写代码时就不要管需求了吗?
asia007
程序员不能一味跟需求走
编程也有2年了,刚开始不懂的什么都跟需求走,需求是怎样就用代码实现就行,也不管这个需求是否合理,是否为较好的用户体验。当然刚开始编程都会这样,但是如果有了2年以上的工作经验的程序员只知道一味写代码,而不在写的过程中思考一下这个需求是否合理,那么,我想这个程序员就只能一辈写敲敲代码了。
我的技术不是很好,但是就不代
- Activity的四种启动模式
百合不是茶
android栈模式启动Activity的标准模式启动栈顶模式启动单例模式启动
android界面的操作就是很多个activity之间的切换,启动模式决定启动的activity的生命周期 ;
启动模式xml中配置
<activity android:name=".MainActivity" android:launchMode="standard&quo
- Spring中@Autowired标签与@Resource标签的区别
bijian1013
javaspring@Resource@Autowired@Qualifier
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。
1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframewo
- Changes Between SOAP 1.1 and SOAP 1.2
sunjing
ChangesEnableSOAP 1.1SOAP 1.2
JAX-WS
SOAP Version 1.2 Part 0: Primer (Second Edition)
SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)
SOAP Version 1.2 Part 2: Adjuncts (Second Edition)
Which style of WSDL
- 【Hadoop二】Hadoop常用命令
bit1129
hadoop
以Hadoop运行Hadoop自带的wordcount为例,
hadoop脚本位于/home/hadoop/hadoop-2.5.2/bin/hadoop,需要说明的是,这些命令的使用必须在Hadoop已经运行的情况下才能执行
Hadoop HDFS相关命令
hadoop fs -ls
列出HDFS文件系统的第一级文件和第一级
- java异常处理(初级)
白糖_
javaDAOspring虚拟机Ajax
从学习到现在从事java开发一年多了,个人觉得对java只了解皮毛,很多东西都是用到再去慢慢学习,编程真的是一项艺术,要完成一段好的代码,需要懂得很多。
最近项目经理让我负责一个组件开发,框架都由自己搭建,最让我头疼的是异常处理,我看了一些网上的源码,发现他们对异常的处理不是很重视,研究了很久都没有找到很好的解决方案。后来有幸看到一个200W美元的项目部分源码,通过他们对异常处理的解决方案,我终
- 记录整理-工作问题
braveCS
工作
1)那位同学还是CSV文件默认Excel打开看不到全部结果。以为是没写进去。同学甲说文件应该不分大小。后来log一下原来是有写进去。只是Excel有行数限制。那位同学进步好快啊。
2)今天同学说写文件的时候提示jvm的内存溢出。我马上反应说那就改一下jvm的内存大小。同学说改用分批处理了。果然想问题还是有局限性。改jvm内存大小只能暂时地解决问题,以后要是写更大的文件还是得改内存。想问题要长远啊
- org.apache.tools.zip实现文件的压缩和解压,支持中文
bylijinnan
apache
刚开始用java.util.Zip,发现不支持中文(网上有修改的方法,但比较麻烦)
后改用org.apache.tools.zip
org.apache.tools.zip的使用网上有更简单的例子
下面的程序根据实际需求,实现了压缩指定目录下指定文件的方法
import java.io.BufferedReader;
import java.io.BufferedWrit
- 读书笔记-4
chengxuyuancsdn
读书笔记
1、JSTL 核心标签库标签
2、避免SQL注入
3、字符串逆转方法
4、字符串比较compareTo
5、字符串替换replace
6、分拆字符串
1、JSTL 核心标签库标签共有13个,
学习资料:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html
功能上分为4类:
(1)表达式控制标签:out
- [物理与电子]半导体教材的一个小问题
comsci
问题
各种模拟电子和数字电子教材中都有这个词汇-空穴
书中对这个词汇的解释是; 当电子脱离共价键的束缚成为自由电子之后,共价键中就留下一个空位,这个空位叫做空穴
我现在回过头翻大学时候的教材,觉得这个
- Flashback Database --闪回数据库
daizj
oracle闪回数据库
Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashbac
- 简单排序:插入排序
dieslrae
插入排序
public void insertSort(int[] array){
int temp;
for(int i=1;i<array.length;i++){
temp = array[i];
for(int k=i-1;k>=0;k--)
- C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int * p; //等价于 int *p 也等价于 int* p;
int i = 5;
char ch = 'A';
//p = 5; //error
//p = &ch; //error
//p = ch; //error
p = &i; //
- centos下php redis扩展的安装配置3种方法
dcj3sjt126com
redis
方法一
1.下载php redis扩展包 代码如下 复制代码
#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
2 tar -zxvf 解压压缩包,cd /扩展包 (进入扩展包然后 运行phpize 一下是我环境中phpize的目录,/usr/local/php/bin/phpize (一定要
- 线程池(Executors)
shuizhaosi888
线程池
在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦
public interface Executor {
void execute(Runnable command);
}
public class RunMain implements Executor{
@Override
pub
- openstack 快速安装笔记
haoningabc
openstack
前提是要配置好yum源
版本icehouse,操作系统redhat6.5
最简化安装,不要cinder和swift
三个节点
172 control节点keystone glance horizon
173 compute节点nova
173 network节点neutron
control
/etc/sysctl.conf
net.ipv4.ip_forward =
- 从c面向对象的实现理解c++的对象(二)
jimmee
C++面向对象虚函数
1. 类就可以看作一个struct,类的方法,可以理解为通过函数指针的方式实现的,类对象分配内存时,只分配成员变量的,函数指针并不需要分配额外的内存保存地址。
2. c++中类的构造函数,就是进行内存分配(malloc),调用构造函数
3. c++中类的析构函数,就时回收内存(free)
4. c++是基于栈和全局数据分配内存的,如果是一个方法内创建的对象,就直接在栈上分配内存了。
专门在
- 如何让那个一个div可以拖动
lingfeng520240
html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml
- 第10章 高级事件(中)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 计算两个经纬度之间的距离
roadrunners
计算纬度LBS经度距离
要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。
/**
*
* @param longitudeA
* 经度A点
* @param latitudeA
* 纬度A点
* @param longitudeB
*
- 最具争议的10个Java话题
tomcat_oracle
java
1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala! 随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。
2、Java 9 即将到来
Oracle早在8月份就发布
- zoj 3826 Hierarchical Notation(模拟)
阿尔萨斯
rar
题目链接:zoj 3826 Hierarchical Notation
题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。
解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。 这题是最后10分钟出的,因为没有考虑value为{}的情