Java 为什么必须将Hashmap保留在ArrayList中,以用作具有2行的ListView的数据源
这是一个关于概念混淆的问题,我自己无法解决。一些当局的协助,以帮助我与这将是非常感谢的Java 为什么必须将Hashmap保留在ArrayList中,以用作具有2行的ListView的数据源,java,android,listview,arraylist,hashmap,Java,Android,Listview,Arraylist,Hashmap,这是一个关于概念混淆的问题,我自己无法解决。一些当局的协助,以帮助我与这将是非常感谢的 ArrayList<Map<String, String>> 我的困惑是: “将使用一个映射列表,并且很可能只有第一个映射(索引为0的项)是将要使用的所有映射。或者将使用一个映射列表,其中每个映射只包含一个键/值对 为什么我们不能只用一张地图 或者是否有一种方法可以用于此?” 我是个新手,我的理解可能是错误的。希望考虑到我的水平,我能得到一个答案 提前感谢想想一个例子 在项目中需要
ArrayList<Map<String, String>>
我的困惑是:
“将使用一个映射列表,并且很可能只有第一个映射(索引为0的项)是将要使用的所有映射。或者将使用一个映射列表,其中每个映射只包含一个键/值对
为什么我们不能只用一张地图
或者是否有一种方法可以用于此?”
我是个新手,我的理解可能是错误的。希望考虑到我的水平,我能得到一个答案
提前感谢想想一个例子
在项目中需要不同的hashmap,并且必须将它们存储在列表中。假设这些不同的hashmap可以有相同的键用于不同的目的。因此,您不能将它们存储在单个hashmap中。这些键将被替换。HashMap只能包含唯一的键。不允许重复的键值。如果您事先确定条目总是唯一的,那么一个映射就足够了。使用ArrayList更多的是一种良好的编程实践,因为无法保证提供的数据,因此您可以确保没有数据丢失(如果某些集合的数据来自不同的提要,则可能会出现这种情况)。ArrayList背后的思想是
是要在ArrayList
列表视图中显示的项目列表
将布局中存在的键与您给定的值相匹配Map
映射
来保存键/值字符串:
Map<String, String> myDataMap = new HashMap<String, String>();
制作阵列列表
:
ArrayList<Map<String, String>> myData = new ArrayList<Map<String, String>>();
myData.add(myDataMap);
它将键“text1”
映射到android.R.layout.simple\u list\u item\u 2
中的android.R.id.text1
,对于“text2”
然后通过myListView.setAdapter(myData)
Map<String, String> myDataMap = new HashMap<String, String>();
myDataMap.add("text1", "value1"); //text1 maps to android.R.id.text1, so value1 will go there.
myDataMap.add("text2", "value2");
ArrayList<Map<String, String>> myData = new ArrayList<Map<String, String>>();
myData.add(myDataMap);
SimpleAdapter adapter = new SimpleAdapter(this, myData,
android.R.layout.simple_list_item_2,
new String[] {"text1", "text2" },
new int[] {android.R.id.text1, android.R.id.text2 });