java - 如何将 hashmap 中的值存储在字符串数组中

标签 java android api retrofit

我有一个循环,它从模型类获取“key”字符串,我想将这些值转换为数组字符串,但我不确定如何实现它。基本上,我的应用程序从 api 获取当前的货币兑换,然后使用 hashmap 从中获取它们,我只想将这些值存储为数组。

Java 类

public void retrofit() {
    Call<Model> call = api.getRatesByGivenCurrency(BASE_URL);
    call.enqueue(new Callback<Model>() {
        @Override
        public void onResponse(Call<Model> call, Response<Model> response) {
            if (!response.isSuccessful()) {
                Toast.makeText(exchange_currency.this, response.code(), Toast.LENGTH_LONG).show();
            }
            list = Collections.singletonList(response.body());

            for (Model model : list) {
                Iterator<Map.Entry<String, Double>> entries = model.getRates().entrySet().iterator();
                while (entries.hasNext()) {
                    Map.Entry entry = (Map.Entry) entries.next();
                    keyString = (String) entry.getKey();
                    valueDouble = (Double) entry.getValue();
                }
            }
        }
        @Override
        public void onFailure(Call<Model> call, Throwable t) {
            Toast.makeText(exchange_currency.this, t.getMessage(), Toast.LENGTH_LONG).show();
        }
    });
 }
}

模型类

public class Model {

@SerializedName("base")
private String base;
@SerializedName("rates")
private Map<String, Double> rates;

public void setRates(Map<String, Double> rates) {
    this.rates = rates;
}

public void setBase(String base) {
    this.base = base;
}

public String getBase() {
    return base;
}

public Map<String, Double> getRates() {
    return rates;
}


class Rates {

    @SerializedName("BGN")
    private Double bGN;

    @SerializedName("NZD")
    private Double nZD;

    @SerializedName("ILS")
    private Double iLS;

    @SerializedName("RUB")
    private Double rUB;

    @SerializedName("CAD")
    private Double cAD;

    @SerializedName("USD")
    private Double uSD;

    @SerializedName("PHP")
    private Double pHP;

    @SerializedName("CHF")
    private Double cHF;

    @SerializedName("ZAR")
    private Double zAR;

    @SerializedName("AUD")
    private Double aUD;

    @SerializedName("JPY")
    private Double jPY;

    @SerializedName("TRY")
    private Double tRY;

    @SerializedName("HKD")
    private Double hKD;

    @SerializedName("MYR")
    private Double mYR;

    @SerializedName("THB")
    private Double tHB;

    @SerializedName("HRK")
    private Double hRK;

    @SerializedName("NOK")
    private Double nOK;

    @SerializedName("IDR")
    private Double iDR;

    @SerializedName("DKK")
    private Double dKK;

    @SerializedName("CZK")
    private Double cZK;

    @SerializedName("HUF")
    private Double hUF;

    @SerializedName("GBP")
    private Double gBP;

    @SerializedName("MXN")
    private Double mXN;

    @SerializedName("KRW")
    private Double kRW;

    @SerializedName("ISK")
    private Double iSK;

    @SerializedName("SGD")
    private Double sGD;

    @SerializedName("BRL")
    private Double bRL;

    @SerializedName("PLN")
    private Double pLN;

    @SerializedName("INR")
    private Double iNR;

    @SerializedName("RON")
    private Double rON;

    @SerializedName("CNY")
    private Double cNY;

    @SerializedName("SEK")
    private Double sEK;

    public Double getBGN() {
        return bGN;
    }

    public void setBGN(Double value) {
        this.bGN = value;
    }

    public Double getNZD() {
        return nZD;
    }

等等...

Api接口(interface)

public interface Api {



@GET("latest")
Call<Model> getRatesByGivenCurrency(@Query("base") String base);

这是 API https://exchangeratesapi.io/

最佳答案

你的问题不清楚!但是,例如,如果您想将字符串转换为字符串数组,您可以使用如下代码:

String strArray[] = key.split(" ");

我认为您也可以使用列表,并在每次迭代时将值添加到字符串列表中

List<String> keyList= new ArrayList<>();
keyList.add(key)

关于java - 如何将 hashmap 中的值存储在字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128441/

相关文章:

Java - 读取图像(IIOException : Can't Create an ImageInputStream)

Android 6.0 未选中从布局资源切换首选项。 Android 7.0 运行良好

php - Mantis Bug 跟踪器 API 集成?

java - 为什么 Java StringReader 会抛出 IOException?

java - 如何将 double 值设置为 "non-value"

java - 由于缺少 ReactiveWebServerFactory bean,无法启动 ReactiveWebApplicationContext

java - 我的问题是关于android Activity Intent

android - 是否可以使用 android.graphics.Path 绘制点

api - WSO2 API 管理器 : Configuration of the access-files consumed services

java - 比较多个值的算法