2017-08-01 49 views
-4

我有一个数组列表 这样如何MENAGE位置在ArrayList中的Android

position(Arraylist) item_name 
0      abc 
1      chf 
2      tiy 
3      trf 
4      lkj 
5      xyz 

,但如果我写ArrayList.remove(0);我得到这个

position(Arraylist) item_name 

    0      chf 
    1      tiy 
    2      trf 
    3      lkj 
    4      xyz 

,但我希望它像这样

position(Arraylist) item_name 

    1      chf 
    2      tiy 
    3      trf 
    4      lkj 
    5      xyz 

我希望你对我有所帮助 而不是KS提前:-)

+3

然后,您想要的不是列表,它是一个Map 。当你从列表中删除某些东西时,它会移动列表中的所有内容。如果您想将1个值与另一个值进行查找,那就是一张地图。 –

+0

arrayList是基于0的数据容器...列表中的第一个元素指向零... –

+2

如果您执行'ArrayList.remove(1)',它如何移除“0 abc”?这应该是删除(0) – Michael

回答

0

你不能这样做使用列表..如果你真的想从1开始..using的LinkedHashMap而不是..

LinkedHashMap<Integer, String> hmap = new LinkedHashMap<Integer, String>(); 
hmap.put(1, "asdasd"); 
hmap.put(2, "qwewewl"); 
hmap.put(3, "sfsdffd"); 
hmap.put(4, "ererer"); 
hmap.put(5, "ggggggg"); 


for(Map.Entry m:hmap.entrySet()){ 
    System.out.println(m.getKey()+" "+m.getValue()); 
} 

要删除

hmap.remove(1); //Use Key to remove 
+0

android studio说,“无法解决symbole LinkedHashMap” –

+0

你需要导入它..'import java.util.LinkedHashMap;' – ZeroOne

0

什么SOU正在试图做是不可能的,ArrayList只要是基于0的数据容器......在列表中的第一个元素是指向指数零...

该列表具有大于0的大小,则将在索引0处存在元素。

+0

我想删除的东西没有触及位置 –

+0

可以我这样做? –

0

Java数组总是从0位置开始。如果你删除位置,你将删除第一个位置的值,然后,第二个位置将成为第一个位置等。

+1

男人这是一个打字错误 –

0

你可以使用一个SparseArray

与正常的对象数组不同,对象可能存在间隙

+0

我怎样才能使用它 –

+0

@WassimTechApps通过阅读文档 – andrei

相关问题