2014-10-28 43 views
0

我需要存储不同类型的数据在一个相同的“数组”关联(或ID)在我的Android应用程序,我想知道是否有办法创建HashMaps (或等效的动态数组),它有多个内容列。像这样的例子。动态数组与更多的一列

HashMap<Integer, String, LatLng, Marker> myHashMap = new HashMap<Integer, String, LatLng, Marker>(); 

在此先感谢您的任何想法。

+1

“Map”是将键与值相关联的东西。什么是“Map ”?我认为你只是想要一个'Map '即使它看起来真的很糟糕设计 – Dici 2014-10-28 19:46:35

+0

map只是关键值pairs.HashMap 没有多大意义 – Chiseled 2014-10-28 19:50:03

+0

为了让更多的认识, d想象一个像MySQL表一样存储数据的变量。一个主键(例如)和几个数据。像这样: | id | message(string)| latitude(double)| longitude(double)| – gotgot1995 2014-10-28 20:09:42

回答

1
private class Row { 
    public Integer i; 
    public String s; 
    public LatLng ll; 

    public Row(Integer i, String s, LatLng ll) { 
     this.i = i; 
     this.s = s; 
     this.ll = ll; 
    } 
} 

List<Row> rows = new ArrayList<Row>(); 

这是半伪代码,但我觉得你的想法

添加新行到列表中可以

rows.add(new Row(new Integer(1), "a string", new LatLng(51.448495, 5.470877)); 

编辑行可与

完成完成
rowIndex = 3; 
Row row = rows.get(rowIndex); 
row.i = 2; //give a new value 
//etc 

编辑:用实际代码替换pseude代码

+1

感谢downvote,请问为什么?这与接受upvote的答案没有什么不同 - 我也在这里学习 – 2014-10-28 21:06:31

+0

对不起,我放了一个downvote,它实际上是我所寻找的,因为DATA对于你的答案是动态的,我将它标记为解决方案。但是我想知道如何在地图上添加“行”?使用map.add(object?); – gotgot1995 2014-10-28 21:13:58

+0

是的,我会在一秒内编辑它 – 2014-10-28 21:18:26

1

地图只是一个键和值,HashMap的让人很没有意义

的Java不会让你定义数据结构的这种方式。类型A的集合应仅保存A类或其子类型的实例。

编辑:从您提供的数据看起来好像你想处理数据库表中的每一行。最合适的数据结构是具有一个类,该类与数据库表相对应。

当您从结果集中获取一行时,只需创建该类的一个实例。

Class mysqlTuple 
{ 
    public Integer id; 
    public String message; 
    public LatLng latitude; 
    public Marker longitude; 
} 

mysqlTupe [] mysqlTable = new mysqlTupe []; 
+0

这将是一个解决方案,但我希望不同的对象链接到像MySQL表上的相同的ID。 – gotgot1995 2014-10-28 20:05:59

+0

请为我们提供一个数据示例。这将更容易理解 – Chiseled 2014-10-28 20:07:51

+0

我有一个MySQL表,我的android应用程序通过PHP脚本下载它的内容,该脚本返回JSON语法数据。 我的表格结构就是这样的:| id | message |纬度|经度| 事情是我想按行处理这个数据(例如,当你做一个MySQL请求,你只想返回链接到ID号码276的消息)。 – gotgot1995 2014-10-28 20:13:24

0

这在很大程度上取决于你想要达到 选择一项什么是保持3个不同的地图:

Map<String, Integer> 
Map<String,Marker> 
Map<String,LatLng> 

另一种选择是让一个:

Map<String,Object> 

然而你将不得不'instanceof'来检查真实类型,这不是最佳实践。