【问题标题】:How do I get string from Arraylist ?如何从 Arraylist 获取字符串?
【发布时间】:2014-01-28 02:31:38
【问题描述】:

我有一个Globals.mylist=new arraylist<hashmap<String,String>> mylist 和 hashmap map1 来保存我的产品订单,然后再将它们插入数据库。这部分是当我将产品订单插入 Globals.mylist 时:

if (Globals.mylist == null) { 
    Globals.mylist = new ArrayList<HashMap<String, String>>();
}
id = bun.getLong("id");
Id=String.valueOf(id);
brand = bun.getString("brand");
type = bun.getString("type");
qty = bun.getString("qty");
if (Globals.mylist.size() == 0) {
  map1.put("one", Id);
  map1.put("two", brand);
  map1.put("three", type);
  map1.put("four", qty); 
  Globals.mylist.add(map1);
} else {
  int j = Globals.mylist.size();
  map1.put("one", Id);
  map1.put("two", brand);
  map1.put("three", type);
  map1.put("four", qty); 
  Globals.mylist.add(j,map1);
}

这部分是当我尝试从 Globals.mylist 中获取字符串到 sqlite 时

for (int i=0; i<Globals.mylist.size();i++) {
map1=Globals.mylist.get(i);
map1.get(Id);
map1.get(qty);
orderdtl = dataSource.createorderdtl(orderid, Id, qty);
}

但是我得到一个错误。它告诉我Id=0 and qty=null。我尝试搜索参考,但我无法实现它们。如何从Globals.mylist 获取字符串 id 和字符串 qty 以插入 sqlite。

【问题讨论】:

  • 你在使用 jython 吗?
  • map1.get("one"), map1.get("two"), map1.get("three") map1.get("four")?
  • @ElliottFrisch 我没有使用 jython
  • @WardaLyn 创建一个类来存储您的 id、品牌、类型和数量。您几乎可以肯定不想要 Globals 任何东西,这是一个 python 习语,仍然让我在您的代码中感到困惑。为什么Globals
  • Globals.java 是我放 mylist 和其他人时的课程。

标签: java string sqlite map arraylist


【解决方案1】:

要从 Map 检索值,您需要它的键。

之前在您的代码中,您使用...生成了地图

map1.put("one", Id);
map1.put("two", brand);
map1.put("three", type);
map1.put("four", qty); 

这会给你钥匙。要检索这些值,您需要使用适当的键,例如...

map1=Globals.mylist.get(i);
String id = map1.get("one");
String qty = map1.get("four");

您可能想通过The Map Interface查看更多详细信息

【讨论】:

  • 做出了不错的改变 ;)
【解决方案2】:

使用设计为能够按插入顺序迭代的 LinkedHashMap 会简单得多。

【讨论】:

    【解决方案3】:

    首先,我认为我们没有足够的代码。但是 .get(int) 函数返回一个对象,它实际上并没有做任何事情,所以你需要做一些类似 System.out.println(map1.get(Id)) 的事情。

    【讨论】:

    • Globals.mylistArrayListHashMapString 键和值,因此,Globals.mylist.get(i) 将(如果可用)返回 HashMapString 键和值.这一切都在代码中 - 只是说;)
    【解决方案4】:

    您的问题是您试图使用它的value 获取地图的value,这不是它的实现方式。

    map1.get(Id);
    map1.get(qty);
    

    方法不对。


    您需要在key 上调用Map#get,您需要检索其value。您将获得 String 类型的值,因为您已声明它,因此请在相同类型的变量中检索它。

    String Id = map1.get("one");
    String qty = map1.get("four");
    

    正确的称呼方式。

    【讨论】:

      【解决方案5】:

      在向映射添加内容时,您使用键值对。

      map.put(key, value);

      当你想得到你应该使用的字符串时;

      map.get(key);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-29
        • 1970-01-01
        • 2012-04-04
        • 2013-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多