gpt4 book ai didi

java - 循环遍历具有交替元素的数组

转载 作者:行者123 更新时间:2023-12-01 19:52:33 26 4
gpt4 key购买 nike

很难用一句话概括这个问题。更容易向你展示我想要的东西。我有以下 Solr 查询响应:

{
.....
},
"facet_counts":{
"facet_queries":{},
"facet_fields":{
"city":[
"New York",23258,
"Los Angeles",13322,
"Paris",1189]},
"facet_ranges":{},
"facet_intervals":{},
"facet_heatmaps":{}}}

我使用 GSON 解析此 JSON 数据并获取包含数组“city”的 JsonArray。其中包含字段名称(键)和相应值的交替元素。所以例如“洛杉矶”的点击量为 13322。我想迭代这个数组以获取它包含的 key=value 对。

例如,我可以为这项任务想出许多简单的解决方案

boolean isKey = true;
String key;
String val;
for(JsonElement je : facetMT) {
if(isKey) {
key = je.getAsString();
isKey = false;
} else {
val = je.getAsString();
resultMap.add(key,val);
isKey = true;
}

}

或者任何其他区分奇数和偶数元素的方法,例如检查是否能被 2 整除。

但这感觉很粗糙。我确信 Java 有其他一些优雅的方法来做到这一点,比如使用迭代器并跳过所有其他元素。但我对 Java 的了解不够好,不知道如何做到这一点,或任何其他 super 智能的方式。

有什么建议,还是我应该使用粗略的代码?

最佳答案

如果您确定数组的长度,那么您应该一次读取两次:

for(int i = 0; i < facetMT.size() - 1; i = i + 2) {
JsonElement key = facetMT.get(i).getAsString();
JsonElement value= facetMT.get(i + 1).getAsString();
resultMap.add(key,val);
}

注意i < facetMT.size() - 1避免的条件IndexOutOfBoundsException

关于java - 循环遍历具有交替元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50816766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com