技术标签: Java Hashmap Java集合 Hashmap问题
前言
今天在学习Java中Session的时候,利用了Session可持久化保存服务器端的特性尝试做了一下用HashMap嵌套的购物车(没有将购物车的商品信息保存在数据库中),之所以做的这么麻烦是为了巩固之前学习的Map知识和锻炼逻辑能力,正好也在其中遇到了一个关于HashMap 的问题,在此做个小小的记录,方便日后查看。
问题
服务器端保存购物车商品信息用的是HashMap嵌套,内层HashMap存放的是商品和该商品的数量,内层的HashMap中只存放一组键值对,外层HashMap存放的是商品和该商品总价,根据页面传过来的商品id在数据库中获取到商品的信息,。再遍历HashMap根据id判断是否已经存在该商品,再针对不同情况进行处理,所遇到的问题是购物车存在页面穿进来的该商品,那么我如果修改内层Map的Integer(数量),再修改外层HashMap的Value(该商品的总价),就会出现空指针异常,解决方案是先将商品总价保存起来,把内层HashMap从外层HashMap中remove掉,再修改商品数量,再将修改数量后的内层HashMap添加到外层HashMap中,代码如下:
出错代码待添加
//此处写的是Shop是因为数据表中给定的表名是shop
package model;/**
文章浏览阅读3.8k次。有很强的的教育意义, 希望大家多多观看, 教育孩子, 教育才是重点!!!!《人生七年》(英文原名《7 up》)由迈克尔·艾普特执导,Bruce Balden 、Jacqueline Bassett 、Symon Basterfield等出演的一部由ITV出品的纪录片。迈克尔·艾普特从1964年开始拍摄的纪录片系列的第一部。迈克尔·艾普特在1964年为英国BBC电视台拍摄了记录片《7 Up》,采...
文章浏览阅读913次。CUDA从入门到精通(零):写在前面在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择。还有不到一年毕业,怕是毕业后这些技术也就随毕业而去,准备这个暑假开辟一个CUDA专栏,从入门到精通,步步为营,顺便分享设计的一些经验教训,希望能_cuda从入门到精通
文章浏览阅读1.3w次,点赞4次,收藏9次。单位和全局变量以太币Ether单位以太币Ether单位之间的换算就是在数字后边加上wei、finney、szabo或ether来实现的,如果后面没有单位,缺省为 Wei。例如2ether==2000finney的逻辑判断值为true。时间单位秒是缺省时间单位,在时间单位之间,数字后面带有seconds、minutes、hours、days、w..._statedb
文章浏览阅读1.2k次。Os,zen cart的成功是为什么,是因为开源,是因为低端(使用需要小,易于使用,普通程序员可轻易学习),我想更多的是因为庞大市场的存在。尽管它们存在的诸多的问题,然而一个免费的系统,一个容易让程序员入手的程序加上市场给它带来了大量的用户。而magento(据说是小日本赞助的)正是看到了巨大的市场而推出的一个系统,然而商人终究是商人,它的复杂,尽管它真的很开放,很灵活,它的资源消耗让很多用户是又_seagull类似的
文章浏览阅读4k次。vb点名程序,随机不重复,算法最优_vb程序设计随机点名
文章浏览阅读286次。 学习spring cloud之前首先学习搭建spring boot框架 并且整合ssm框架,搭建一个demo使用eclipse 建立spring boot工程选择web 以及mybatiis/mysql工程结构如图所示建立models-》student.javapackage com.example.demo.models;public class Stude..._eclipse 搭建 spring cloud
文章浏览阅读1.7w次,点赞9次,收藏11次。org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper的解决办法:在pom.xml中使用低版本的spring-boot-starter,例:使用2.1.7.RELEASE的spring-boot-starter配合2.9.2版本的swagger:<?xml version="1.0" encoding="UTF-8"?>&_org.springframework.context.applicationcontextexception: failed to start bea
文章浏览阅读2.2k次。本文主要对EBGAN, LSGAN, BEGAN三个模型核心理论进行简单记录.引言 GAN的原理就是利用Discriminator作为Generator的引导,使得最终Generator生成的samples可以以假乱真,具体过程可以用下图表示. 上图来自李宏毅深度学习PPT中,蓝色线表示Generator distribution, 绿色线表示data distributi_began和ebgan
文章浏览阅读79次。分享八种经典排序算法的python代码。1.#冒泡排序def bubbleSort(nums):for i in range(len(nums) - 1):for j in range(len(nums) - i - 1):if nums[j] > nums[j + 1]:nums[j], nums[j + 1] = nums[j + 1], nums[j]return nums2.#选择排序de..._for i in range(len(nums) - 1)
文章浏览阅读72次。转载: 之前无意中看到Ovilia 用threejs做了个LOW POLY,也就是图片平面三角化的效果,觉得很惊艳,然后就自己花了点时间尝试了一下。 我是没怎么用过threejs,所以就直接用canvas的2d绘图API来做,因为感觉似乎这效果也用不上threejs。 直接上demo先:http://whxaxes.github.io/canvas-test/src/Funn..._canvas poly 绘图
文章浏览阅读9.1k次,点赞2次,收藏11次。输出所有大于平均值的数 (15分)本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。输入格式:输入在第1行中给出一个正整数n(1≤n≤10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。输出格式:输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。如果输入的n不在有效范围内,则在一行中输出"Invalid."。输入样例1:1055 23 8_7-12 输出所有大于平均值的数 分数 15 作者 颜晖 单位 浙大城市学院 本题要求编写
文章浏览阅读227次。到目前为止,在本系列文章中,我们已经介绍了两种消除永久WordPress管理员通知的方法。 我们将在本教程系列的第四部分也是最后一部分的基础上,通过研究两种更具体的方法来永久解除管理员通知,以此为基础。 我们将通过展示如何创建自己的自定义管理员通知类型以及添加装饰(例如图标)来解决问题。 粘性管理员通知 我们已经知道如何显示可以被撤消的管理员通知。 我们要做的就是将is-dismissi...