Java 如何访问列表的数组元素

Java 如何访问列表的数组元素,java,arrays,list,arraylist,indexof,Java,Arrays,List,Arraylist,Indexof,我有一个问题: 我有一个用不同值填充的Java列表。例如,我有: List<String[]> l = new ArrayList(); String[] lis = new String[3]; lis[0] = "A"; lis[1] = "B"; lis[2] = "C"; l.add(lis); 但我得到-1作为回报。我想知道加载数组时如何访问列表中的字段。要执行此操作: List<String> l = new ArrayList(); String[] li

我有一个问题:

我有一个用不同值填充的Java列表。例如,我有:

List<String[]> l = new ArrayList();
String[] lis = new String[3];
lis[0] = "A";
lis[1] = "B";
lis[2] = "C";
l.add(lis);
但我得到-1作为回报。我想知道加载数组时如何访问列表中的字段。

要执行此操作:

List<String> l = new ArrayList();
String[] lis = new String[3];
lis[0] = "A";
lis[1] = "B";
lis[2] = "C";
l.addAll(lis);
listl=newarraylist();
字符串[]lis=新字符串[3];
lis[0]=“A”;
lis[1]=“B”;
lis[2]=“C”;
l、 addAll(lis);
或者您根本不必使用数组

List<String> l = new ArrayList();    
l.add("A");
l.add("B");
l.add("C");
listl=newarraylist();
l、 添加(“A”);
l、 添加(“B”);
l、 添加(“C”);
在您的情况下,您有数组列表,而不是字符串列表。

您想这样做:

List<String> l = new ArrayList();
String[] lis = new String[3];
lis[0] = "A";
lis[1] = "B";
lis[2] = "C";
l.addAll(lis);
listl=newarraylist();
字符串[]lis=新字符串[3];
lis[0]=“A”;
lis[1]=“B”;
lis[2]=“C”;
l、 addAll(lis);
或者您根本不必使用数组

List<String> l = new ArrayList();    
l.add("A");
l.add("B");
l.add("C");
listl=newarraylist();
l、 添加(“A”);
l、 添加(“B”);
l、 添加(“C”);
在您的例子中,您有数组列表,而不是字符串列表。

l.add(lis)之后
您的列表
l
只有一个元素:
String[]lis
不是数组的n个元素

通过
indexOf
检查列表中的字符串
“a”
,它返回-1,表示“不,我没有该元素”

您可能需要检查
Arrays.asList()
方法,它将数组转换为
List
。我想这就是你想要的。

在你
l.add(lis)之后
您的列表
l
只有一个元素:
String[]lis
不是数组的n个元素

 List<String[]> l = new ArrayList<>();
 String[] lis = new String[3];
 lis[0] = "A";
 lis[1] = "B";
 lis[2] = "C";
 l.add(lis); //  now your list have only one element and it's index is 0
通过
indexOf
检查列表中的字符串
“a”
,它返回-1,表示“不,我没有该元素”

您可能需要检查
Arrays.asList()
方法,它将数组转换为
List
。我想这就是你想要的

 List<String[]> l = new ArrayList<>();
 String[] lis = new String[3];
 lis[0] = "A";
 lis[1] = "B";
 lis[2] = "C";
 l.add(lis); //  now your list have only one element and it's index is 0
如果您想以这种方式获取索引,可以使用

String[] lis = new String[3];
lis[0] = "A";
lis[1] = "B";
lis[2] = "C";        

int index= Arrays.asList(lis).indexOf("A");
System.out.println(index);
输出:

0
如果您想以这种方式获取索引,可以使用

String[] lis = new String[3];
lis[0] = "A";
lis[1] = "B";
lis[2] = "C";        

int index= Arrays.asList(lis).indexOf("A");
System.out.println(index);
输出:

0
我要A的索引

不,您无法获取它,因为它是数组中的一个元素。数组没有indexOf方法。我有那个方法

我想知道在加载数组时如何访问列表中的字段

get(0)为您提供第一个插入的数组,[0]为您提供该数组中的第一个positiend元素

如果要在数组中查找
A
的位置,请使用
l.get(0)
从列表中访问该数组,并在得到的数组上迭代以获取
A
的位置

评论后更新:如果您不知道您拥有的索引

for (int i = 0; i < l.size(); i++) {
        for (int j = 0; j < l.get(i).length; j++) {
            if( l.get(i)[j].equalsIgnoreCase("A")){
                return j;
            }
        }
    }
for(int i=0;i

注意:作为一个示例代码,并考虑NULL、副本等…< /P>的检查。 我要A的索引

不,您无法获取它,因为它是数组中的一个元素。数组没有indexOf方法。我有那个方法

我想知道在加载数组时如何访问列表中的字段

get(0)为您提供第一个插入的数组,[0]为您提供该数组中的第一个positiend元素

如果要在数组中查找
A
的位置,请使用
l.get(0)
从列表中访问该数组,并在得到的数组上迭代以获取
A
的位置

评论后更新:如果您不知道您拥有的索引

for (int i = 0; i < l.size(); i++) {
        for (int j = 0; j < l.get(i).length; j++) {
            if( l.get(i)[j].equalsIgnoreCase("A")){
                return j;
            }
        }
    }
for(int i=0;i

注意:作为一个示例代码,考虑NULL、重复项等……

< P> >您的<代码>列表< /代码>包含字符串数组(<代码> String []/COD>)。我想你想做的是创建一个
列表

如果您确实想要一个
列表
,那么您的代码将如下所示:

for(int i = 0; i < list.size(); i++)
{
    String[] array = list.get(i);
    for(String s : array)
    {
        if("A".equals(s))
        {
            return i;
        }
    }
}
for(int i=0;i
您的
列表包含字符串数组(
String[]
)。我想你想做的是创建一个
列表

如果您确实想要一个
列表
,那么您的代码将如下所示:

for(int i = 0; i < list.size(); i++)
{
    String[] array = list.get(i);
    for(String s : array)
    {
        if("A".equals(s))
        {
            return i;
        }
    }
}
for(int i=0;i
列表默认为随机插入,搜索为线性。因此,您必须搜索整个列表,如果找到element@Shriram否,列表是有序的。默认情况下,列表是随机插入的,搜索是线性的。因此,您必须搜索整个列表,如果找到element@Shriram不,列表是按顺序排列的。我的问题是:如果我不知道索引“0”(因为我有一个lof数据),如何根据我的第一个字段检索它?@Musich87在这种情况下,您需要迭代列表,然后再次迭代数组。我已经看到了你的更新。我不想要数组索引,而是列表索引。例如,如果我的列表“A”、“B”、“C”和“D”、“E”、“F”中有两个数组,并且我搜索“D”,我希望检索值1,因为它是列表中的第二个数组。如果我把“return j”改为“return I”,你的代码是好的,对吗?谢谢Suresh@Musich87完全正确。:)<代码>返回i
。请记住,如果数组中有重复的条目,那么您将得到作为列表第一个索引的结果。例如:“D”和“D”。是的,我想要列表中值的第一个索引(例如“D”)。没关系!我的问题是:如果我不知道索引“0”(因为我有大量的数据),ho