java - 如何在java中减去hashmap数据

标签 java android hashmap equation

我将数据保存在 HashMap 中。我有两个 HashMap 数据,一项来自数据库,一项来自 Activity 结果。我想用这些数据做一些方程式,但前提是使用数据库 key 键入 Activity 数学。我尝试用数据库数据减去 Activity 数据,但结果始终为 0。

来自数据库和结果 Activity 的数据被传递到此 HashMap 类:

public class PositionData implements Serializable {
private String name;
    public HashMap<String, Integer> values;
    public HashMap<String,String> routers;
    public PositionData(String name) {
        // TODO Auto-generated constructor stub
        this.name=name;
        values = new HashMap<String, Integer>();
        routers = new HashMap<String, String>();

    }
    public void addValue(Router router,int strength){

        values.put(router.getBSSID(), strength);
        routers.put(router.getBSSID(),router.getSSID());

    }
    public String getName() {
        return name;
    }
    public String toString() {
        String result="";
        result+=name+"\n";
        for(Map.Entry<String, Integer> e: this.values.entrySet())
                 result+=routers.get(e.getKey())+" : "+e.getValue().toString()+"\n";

        return result;  

    }
    public HashMap<String, Integer> getValues() {
        return values;
    }

    public HashMap<String, String> getRouters() {
        return routers;
    }

这就是我在 Activity 类中做减法的方法:

PositionData positionData = (PositionData) intent
                .getSerializableExtra("PositionData");

positionsData=db.getReadings(building);

HashMap<String, Integer> rssi = positionData.getValues();
HashMap<String, Integer> rssi1 = positionsData.get(0).getValues();
HashMap<String, String> dest = positionsData.get(0).getRouters();

int dista =  0;
if (positionData.equals(dest)){
dista = Integer.parseInt(String.valueOf(rssi))-Integer.parseInt(String.valueOf(rssi1));
        }

        Log.v("dis:", String.valueOf(dista));

我有来自类数据库和类结果的数据,这两个数据都传递到 HashMap Activity 以获取 positionData 形式。得到表格后,我在方程类中计算它。所以,我在这里有 4 节课。

最佳答案

我为您创建了通用示例。我认为这可以帮助您理解如何在 HashMap 上进行方程计算。

HashMap<String, Integer> activity= new HashMap<String, Integer>();
HashMap<String, Integer> database = new HashMap<String, Integer>();
Iterator iter = activity.keySet().iterator(); // getting iterator from keySet from one of hashmaps

// Iterate through one of hashmaps keys
    while(iter.hasNext()){
      String s = (String) iter.next();
      if(database.containsKey(s)){ // finding key in second hashmap
        // in here you can do your equation;
      }
    }

关于java - 如何在java中减去hashmap数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57433248/

相关文章:

Java,为什么从MappedByteBuffer读取比从BufferedReader读取慢

java - 如何将两个数组转换为一个映射<k,v>

java - 如何将 List 转换为 HashMap

java - JAXB 无法编码(marshal)类型 "java.util.HashMap"

java - 使用 JOGL 调整 GLJPanel 的大小会导致我的模型消失

java - Storm-Kafka多个spout,如何分担负载?

Java 缓存 .wav 失败

java - 切换到 Firebase 数据库 9.4.0 内存泄漏

Android Shape - 渐变应该到右边

android - Kotlin 多平台 : How to mock objects in a unit test for iOS