当前位置: 首页 > 知识库问答 >
问题:

获取ArrayList()的值(字符串);在Java

澹台逸明
2023-03-14

我知道这是个简单的问题,但在

ArrayList<ArrayList<String>> collection;
ArrayList<String> listOfSomething;

collection= new ArrayList<ArrayList<String>>();
listOfSomething = new ArrayList<String>();

listOfSomething.Add("first");
listOfSomething.Add("second");
collection.Add(listOfSomething);
listOfSomething.Clear();
listOfSomething.Add("first");
collection.Add(listOfSomething);

我想从ArrayList的ArrayList中获取String,但我不知道如何实现。例如我去

ArrayList<String> myList = collection.get(0); 
String s = myList.get(0);

而且奏效了!但是:

private List<S> valuesS;
private List<Z> valuesZ;


ArrayList<ArrayList<String>> listOfS;
ArrayList<String> listOfZ;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        Zdatasource = new ZDataSource(this);
        Zdatasource.open();
        valuesZ = Zdatasource.getAllZ();
        
        Sdatasource = new SDataSource(this);
        Sdatasource.open();
        valuesS = Sdatasource.getAllS();

        List<Map<String, String>> groupData 
             = new ArrayList<Map<String, String>>();
        List<List<Map<String, String>>> childData 
             = new ArrayList<List<Map<String, String>>>();

        listOfS = new ArrayList<ArrayList<String>>();
        listOfZ = new ArrayList<String>();
        for (S i : valuesS) { // S is class
            for (Z j : valuesZ) { // Z is class
                if(j.getNumerS().equals(i.getNumerS())) {
                    listOfZ.add(j.getNumerZ());
                }
                else
                {
                    //listOfZ.add("nothing");
                }
            }
                listOfS.add(listOfZ);
                if(!listOf.isEmpty()) listOfZ.clear();
        }



@Override
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition,
            int childPosition, long id) {
        try
        {       
            ArrayList<String> myList = listOfS.get(groupPosition); 
            String s = myList.get(childPosition);
         PrintToast("group "+Integer.toString(groupPosition)+", child "+Integer.toString(childPosition) + " , "+ s);
        }
        catch(Exception e)
        {
            Log.e("FS", e.toString());
        } 
        return true;
    }

返回java.lang.IndexOutOfBoundsException:无效的索引1,当我单击真正应该存在的项目时,大小为0。我没有显示生成ListView代码,但我可以告诉您,我的listOfS包含3个项目:第一个是Null listOfZ,第二个listOfZ得到2个元素,第三个listOfZ得到1个元素。

共有1个答案

邓业
2023-03-14
listOfSomething.Clear();
listOfSomething.Add("first");
collection.Add(listOfSomething);

您正在清除这里的列表并添加一个元素(“first”),ListOfSomething的第一个引用也会被更新,如果它们引用了同一个对象,那么当您访问第二个元素MyList.get(1)(它已经不存在了)时,您会得到空值。

注意collection.add(listOfSomething);保存了对同一个arraylist对象的两个引用。

您需要为两个元素创建两个不同的实例:

ArrayList<ArrayList<String>> collection = new ArrayList<ArrayList<String>>();

ArrayList<String> listOfSomething1 = new ArrayList<String>();
listOfSomething1.Add("first");
listOfSomething1.Add("second");

ArrayList<String> listOfSomething2 = new ArrayList<String>();
listOfSomething2.Add("first");

collection.Add(listOfSomething1);    
collection.Add(listOfSomething2);
 类似资料:
  • 问题内容: 假设我在php中有一个字符串,它会输出到这样的文本文件中: nÖ§9q1Fª£ 如何将其字节码而不是时髦的ascii字符保存到我的文本文件中? 问题答案: 使用ord函数 http://ca.php.net/ord 例如。

  • 本文向大家介绍javascript实现获取字符串hash值,包括了javascript实现获取字符串hash值的使用技巧和注意事项,需要的朋友参考一下 性能很高的计算字符串或文件hash值的函数,比md5速度快得多,自己一直用着,重复的几率为很底,一般的应用足够, 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 问题内容: 我试图解析JSON字符串“ {‘test’:‘100.00’}”并使用GSON库获取值:100.00。我的代码如下所示: 我的结果看起来像这样:“ 100.00”,但是我只需要100.00(不带引号)即可。如何归档? 问题答案:

  • 我正在从treemap中获取值: --> 无法按升序对列表进行排序 我从idlatlng获得的值是:[<代码>LAT/LNG:(70.0187,-141.0205),LAT/LNG:(70.4515,-144.8163),LAT/LNG:(70.4515,-144.8163),LAT/LNG:(70.4515,-144.8163),LAT/LNG:(70.4515,-144.8163),LAT/L

  • 问题内容: 我是Android的初学者。在我的项目中,我从HTTP响应中获取了以下json。 我想从上面的json获取“ NeededString”。如何获得? 问题答案: 这可能对您有帮助。 Java: 科特林: getJSONObject(index)。在上面的示例中,0表示索引。

  • 我有以下字符串: