当前位置: 首页 > 知识库问答 >
问题:

如何使用哈希映射形成一组相同的值

晋越彬
2023-03-14

我从数组列表中检索数据。已有数组列表具有与哈希映射类型(key、values)相同值;在从数组列表中检索这些数据并映射到哈希映射变量之后。我必须用一个叫做tax的变量来分组。

1)在哈希映射中添加Add

 HashMap<String, String> personq = new HashMap<String, String>();
                                personq.put("product_id",tv4);
                                personq.put("productname",tv2);
                                personq.put("exit",exit);
                                personq.put("product",product_1);
                                personq.put("unit_price",tv3);
                                personq.put("tax", String.valueOf(gst));
                                personq.put("purchase_cost",String.valueOf(tv9));
                                personq.put("cost", String.valueOf((two.format(finalcp))));
                                final_cart_list_1.add(personq);

之后,将这些哈希映射值添加到名为final_cart_list_1的数组列表初始化类型的Arraylist中

ArrayList<HashMap<String, String>> final_cart_list_1;
 HashMap<String, String> personMap = new HashMap<String, String>();



for(int i=0;i<final_cart_list_1.size();i++){
                    personMap = final_cart_list_1.get(i);// getting values from arraylist and storing into hashmap
                    Log.d("valuesinHashamap ",""+personMap);
                    tax = Float.parseFloat(personMap.get("tax"));
                    Log.d("tax_values",""+  tax);
                    qty=Integer.parseInt(personMap.get("qty"));
                    Log.d("qty_values",""+qty);
                  unitprice=Float.parseFloat(personMap.get("unit_price"));
                    Log.d("untiprice_values",""+qty);
                  }
2019-08-07 18:08:35.501 13378-13378/com.example.dewsys.technicianapp D/valuesinHashamap: {product_id=500, unit_price=220.000000, exit="1", cost=281.60, purchase_cost=200.0, productname=System(or)Laptop/ANTIVIRUS/K7/asd/test, qty=1, tax=28.0, product="0"}
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/valuesinHashamap: {product_id=501, unit_price=126.250000, exit="1", cost=161.60, purchase_cost=101.0, productname=System(or)Laptop/ANTIVIRUS/K7/asd/test1, qty=1, tax=28.0, product="0"}
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/valuesinHashamap: {product_id=500, unit_price=220.000000, exit="1", cost=281.60, purchase_cost=200.0, productname=System(or)Laptop/ANTIVIRUS/K7/asd/test, qty=1, tax=28.0, product="0"}
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/valuesinHashamap: {product_id=500, unit_price=220.000000, exit="1", cost=281.60, purchase_cost=200.0, productname=System(or)Laptop/ANTIVIRUS/K7/asd/test, qty=1, tax=28.0, product="0"}

在此之后,我将所有产品的产品特别税值

  tax = Float.parseFloat(personMap.get("tax"));

税务的日志cat值如下所示

2019-08-07 18:08:35.501 13378-13378/com.example.dewsys.technicianapp D/tax_values: 28.0
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/tax_values: 28.0
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/tax_values: 28.0
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/tax_values: 28.0

之后,我采取产品的具体数量,单价价值的所有产品与税一样只。

2019-08-07 18:08:35.501 13378-13378/com.example.dewsys.technicianapp D/qty_values: 1
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/qty_values: 1
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/qty_values: 1
2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/qty_values: 1
 2019-08-07 18:08:35.501 13378-13378/com.example.dewsys.technicianapp D/untiprice_values: 1
    2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/untiprice_values: 1
    2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/untiprice_values: 1
    2019-08-07 18:08:35.502 13378-13378/com.example.dewsys.technicianapp D/untiprice_values: 1

如果税值相同,我们需要将这些税,数量,单价加在一起,并推入创建的数组或数组列表。

如果税值不匹配,他们想要单独添加,想要添加数量和单价一起,并推入创建的数组或数组列表。

我有一个步步为营的算法

3.第二次进入循环检查当前的税值和以前的税值。如果当前和以前的税值是,那么我们要将以前和当前的税、数量、单价加在一起。否则当前税额和以前的税额不匹配,分开,要添加它,并按新的税额值组单独追加

伙计们,我是java编程的新手。我有理想,就是我上面通过算法或暗示投射出来的。希望能通过哪种方法来解决这个问题

共有1个答案

翟英达
2023-03-14

我希望这对你的工作有帮助

       List<Map<String, String>> strings = new ArrayList<>();
    Map<String, String> stringStringMap = new HashMap<>();
    stringStringMap.put("tax", "123");
    stringStringMap.put("quantity", "1");
    stringStringMap.put("prices", "123");

    Map<String, String> stringStringMap2 = new HashMap<>();
    stringStringMap2.put("tax", "123");
    stringStringMap2.put("quantity", "1");
    stringStringMap2.put("prices", "123");

    Map<String, String> stringStringMap3 = new HashMap<>();
    stringStringMap3.put("tax", "1234");
    stringStringMap3.put("quantity", "1");
    stringStringMap3.put("prices", "123");

    strings.add(stringStringMap3);
    strings.add(stringStringMap2);
    strings.add(stringStringMap);
     Map<String, List<Map<String, String>>> tax = strings.stream().collect(Collectors.groupingBy(
        o -> o.get("tax"), Collectors.toList()));
    System.out.println(tax);

这将像这样打印输出

{123=[{quantity=1, tax=123, prices=123}, {quantity=1, tax=123, prices=123}], 1234=[{quantity=1, tax=1234, prices=123}]}

在这里,所有价值123的税种合并在一起,价值1234单独合并。

 类似资料:
  • 我会从我想达到的目标开始 意图 该软件在for循环中解析XML数据。处理数据的 for 循环将持续到 50(因为我得到了 50 个不同的结果)。我最初所做的是,-方法解析整个XML数据并将其保存到TextViews中并显示它。但现在我想添加一个启动画面,只要数据加载就会显示。 XML文件像任何其他普通XML文件一样构建,因此当我通过for循环时,键总是相同的,但值不同。 方法 我已经做的是创建一个

  • 我正试图让我的头脑围绕着一个哈姆特的细节。我会用Java自己实现一个,只是为了理解。我熟悉尝试,我想我得到了HAMT的主要概念。 基本上, 两种类型的节点: null null 我不太明白的部分是碰撞检测和缓解。在链接的论文中,他暗示了这一点: 然后将现有键插入到新的子哈希表中,并添加新键。每使用5个以上的散列比特,冲突的概率就减少1/32倍。偶尔,可能会消耗整个32位哈希,必须计算一个新的哈希来

  • 有人能帮我找到一份没有重复的正确清单吗。 我有一个哈希映射列表,比如“HashMap map”,它的大小是4。键值对类似于以下内容 我想创建另一个Hashmap列表,其中包含“uri\u path”的单个条目以及相应计算的平均值和计数。这就是我正在尝试的。理想情况下,新列表的大小应小于原始列表的大小。有人能帮我理解是不是出了问题

  • 本文向大家介绍Java中并发哈希映射和同步哈希映射之间的区别,包括了Java中并发哈希映射和同步哈希映射之间的区别的使用技巧和注意事项,需要的朋友参考一下 并发Hashmap是jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。  同步hashmap(Collection.syncronizedHashMap())是C

  • 我需要从我的Android向Algolia发送数据,发送的数据应该是JSONObject格式(导入org.json.JSONObject) Algolia中的数据应采用此格式 所以在Android中,我这样设置代码 在这行代码中 那么我应该怎么做才能以JSONObject格式发送hashmap数据呢?

  • > 阅读算法书,需要掌握哈希表的概念。他们写了关于使用单独链接的散列和使用线性探测的散列。我猜Java的HashMap是一个哈希表,因此我想知道HashMaps使用什么机制(链接或探测)? 我需要实现最简单的HashMap与get,put,删除。你能给我指出好的材料来阅读吗? 当用于映射的惟一键是自定义对象时,我们需要在相应的类型中实现hashCode()函数。我做得对吗?或者什么时候需要hash