ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 点单系统 ![](https://box.kancloud.cn/10f3b8d7977a324c683576cd43e3143e_640x435.jpg) ![](https://box.kancloud.cn/7db1d0c93b55f7f99b8791bc11436aaa_1080x1164.jpg) ### HashMap的遍历 ```java public static void main(String[] args) { HashMap<Integer, String> hashmap = new HashMap<>(); hashmap.put(1,"gogo"); hashmap.put(2,"wade"); hashmap.put(3,"james"); hashmap.put(4,"curry"); // 1. 通过Map.keySet遍历key和value: for (int key : hashmap.keySet()){ System.out.println("key: "+ key + "; value: " + hashmap.get(key)); } //2. 通过Map.entrySet使用iterator遍历key和value: Iterator<Map.Entry<Integer, String>> it = hashmap.entrySet().iterator(); while (it.hasNext()){ Map.Entry<Integer, String> entry = it.next(); System.out.println("key: "+ entry.getKey() + "; value: " + entry.getValue()); } //3. 通过Map.entrySet遍历key和value for(Map.Entry<Integer, String> entry : hashmap.entrySet()){ System.out.println("key: "+ entry.getKey() + "; value: " + entry.getValue()); } //4. 通过Map.values()遍历所有的value,但不能遍历key for (String value : hashmap.values()) { System.out.println("value: "+value); } } ``` ### 防止订单重复提交: * HashMap存储数据的时候,是取的key值的哈希值,然后计算数组下标,采用链地址法解决冲突,然后进行存储; * 取数据的时候,依然是先要获取到hash值,找到数组下标,然后for遍历链表集合,进行**比较**是否有对应的key。 **比较**的有2点:1.不管是put还是get的时候,都需要得到key的哈希值,去定位key的数组下标; *2.*在get的时候,需要调用equals方法比较是否有相等的key存储过。 > 而在我们没有重写对象hashCode方法时,会自动调用基类Object的hashCode方法,导致两个对象hash编码不一致。 > 所以我们要重写hashCode和equalsl两个方法,才能保证订单不重复提交。 ### 使用servlet返回JSON数据 > fastJSON的使用