gpt4 book ai didi

java - 为什么子列表不适用于 List
转载 作者:太空宇宙 更新时间:2023-11-04 12:48:19 25 4
gpt4 key购买 nike

我正在尝试从 List<Object> 获取子列表这样,

在做子列表之前我的实际 map 数据是这样的,

Converted Map{Demography=[[D11,D22,D99]], Paper=[[[EEE,RRR,TTT],[QQQ,WWW,EEE],[UUU,III,OOO]]], Hunt=[[HUT,HUG,HUE]], Camp=[[COL,CIL,CPL]]

我的代码是这样的,

public class PosTest {
HashMap<String, Object> uiMap = new HashMap<String, Object>();
public static void main(String[] args) {
PosTest mm = new PosTest();
mm.getSupplierInfo();
}
public void getSupplierInfo()
{
HashMap<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put("Camp","[COL,CIL,CPL]");
jsonMap.put("Demography","[D11,D22,D99]");
jsonMap.put("Hunt","[HUT,HUG,HUE]");
jsonMap.put("Paper","[[EEE,RRR,TTT],[QQQ,WWW,EEE],[UUU,III,OOO]]");

Iterator<Entry<String, Object>> i = jsonMap.entrySet().iterator();
Entry<String, Object> e = null;
List<Object> eValue = null;
while (i.hasNext()) {
e = i.next();
eValue = Arrays.asList(e.getValue());
uiMap.put(e.getKey(), eValue.subList(0, 1));
}
System.out.println("Converted Map" + uiMap);

}
}

然后当我打电话uiMap.put(e.getKey(), eValue.subList(0, 1));时我应该只从列表中获取 0,1 个值,即

Converted Map{Demography=[D11,D22], Paper=[[EEE,RRR,TTT],[QQQ,WWW,EEE]], Hunt=[HUT,HUG]], Camp=[COL,CIL]}

但是我的代码输出是 Converted Map{Demography=[[D11,D22,D99]], Paper=[[[EEE,RRR,TTT],[QQQ,WWW,EEE],[UUU,III,OOO]]], Hunt=[[HUT,HUG,HUE]], Camp=[[COL,CIL,CPL]]}

为什么返回的所有列表值都没有子列表 (0,1),并且还添加了一个额外的大括号?

有人可以帮我解决这个问题吗?

最佳答案

您是否假设 Java 可以将 "[COL,CIL,CPL]" 解释为列表?这不可以。它是一个 String 类型的对象。

当您调用 Arrays.asList() 时,由于可变参数,Java 首先生成一个包含一个 String 元素的数组,然后 asList() 将其转换为一个包含一个元素的列表。该列表的 subList(0, 1) 是同一个列表。这就是为什么你得到的东西和你输入的东西是一样的。

关于java - 为什么子列表不适用于 List<Object>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36089062/

25 4 0