[英]convert fetched data into string , string array map
我正在从android中的sqlite获取数据,如下
URL PHONE
---------------------------------
/test/img1.png 98989898
/test/img1.png 61216121
/test/img2.png 75757575
/test/img2.png 40404040
/test/img3.png 36363636
现在我想创建一个这样的地图,其中存储数据如下
/test/img1.png [98989898 , 61216121 ]
/test/img2.png [75757575 , 40404040 ]
/test/img3.png [36363636]
这样我就可以将整个地图传递给该函数,该函数最终在后台获取图像url并将数据发送到列出的电话号码数组中。 那么,如何将获取的数据转换为字符串数组样式的键?
我将创建一个Map<String, List<String>>
(又名“多图”)。 如果使用List<String>
则在开始之前不必知道给定URL的电话号码。 如果选择阵列路由,则不是这样。
Map<String, List<String>> results = new HashMap<String, List<String>>();
while (rs.next()) {
String url = rs.getString(1);
String phone = rs.getString(2);
List<String> phones = (results.contains(url) ? results.get(url) : new ArrayList<String>());
phones.add(phone);
results.put(url, phones);
}
Google收藏夹有一个多张地图,您可以直接使用它,但是我认为您已经足够了。
如果要存储更多项(例如名称),则应开始考虑一个将所有项封装在一起的对象。 Java是一种面向对象的语言。 您听起来好像觉得自己的思维水平太低感到内gui。 字符串,基元和数据结构是对象的构建块。 也许您在这里需要一个人:
package model;
public class Person {
private String name;
private Map<String, List<String>> contacts;
// need constructors and other methods. This one is key
public void addPhone(String url, String phone) {
List<String> phones = (this.contacts.contains(url) ? this.contacts.get(url) : new ArrayList<String>());
phones.add(phone);
this.contacts.put(url, phones);
}
}
剩下的我留给你。
如果您采用这种方式,则需要将结果集映射到Person中。 但是您应该从我发布的代码中看到这个想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.