如何在java中的ArrayList中获取一个元素

时间:2014-01-16 09:44:29

标签: java list

我想将csv文件内容插入列表。

col1,col2,col3
b,a,v
a,c,p
d,a,z
q,z,a
r,a,b

这样我就可以获得特定的col

例如:if 2 nd col then

a
c
a
z
a

我试图将其插入列表

list: [b,a,v, a,c,p, d,a,z, q,z,a, r,a,b]

但我如何获得第二个col值。

更新

 ArrayList<String> ar = new ArrayList<String>(); 
 ar.add(line);
 System.out.println("list: "+ar);

我可以打印第一个索引。

使用

System.out.println("get index: "+ar.get(0));
get index: b,a,v

但我需要得到'a'即需要给定数据的所有第二列

6 个答案:

答案 0 :(得分:1)

解决方案1 ​​

而不是列表使用List.so您的列表成为

List<List>: [ [b,a,v], [a,c,p], [d,a,z], [q,z,a], [r,a,b]]

要得到任何一行,你只需要打电话

List<List<String> list;

List<String> row = list.get(index);     \\will return you corresponding row
String content = row.get(1);            \\will return col2 value

解决方案2

如果你按单个列表然后获得任何元素,你必须执行一些计算,如

list<String> ar = new ArrayList<String>();
ar.get(row * 3 + column)     // will return you column of row you want. 

注意:行数和列数从0开始,而不是1

答案 1 :(得分:1)

一个简单的for循环将提供一个技巧, 为i分配初始值columnnumber - 1,其中columnnumber是您要查找的列值,

for (int i = columnnumber - 1; i < args.length; i+=3) 
{
    System.out.print(args[i] + ", ");

}

由于每行包含3个值,因此您创建了一个列表。

答案 2 :(得分:1)

列表是0索引。索引1将从列表中返回第二个元素。

像这样使用。

list.get(1)

答案 3 :(得分:1)

你可以这样做。

ArrayList list = ... ;

...

int colId = 1;
int numCols = 3;

for(int i = colId; i < list.size(); i += numCols){
  System.out.println(list.get(i));
}

答案 4 :(得分:1)

如果您只有%,则可以使用ArrayList运算符。

逻辑是这样的:

int colNo = 3 ; // column no which you want to get from list

for ( int i = 0; i < list.size(); i++ ) {
     if ( i % colNo == 0) {
         System.out.println(list.get(i));
     }
}

但是在您的情况下,建议使用列表清单。

答案 5 :(得分:1)

根据您的更新,您需要 b,a,v 中的 a 。在这里你可以拆分字符串并获得中间元素,即索引1元素。因此,下面的代码片段将获得每个元素中的第二个值并打印它

for(int i=0;i<ar.size();i++) {
            String[] tokens=(ar.get(i)).split(",");
            System.out.println(tokens[1]);
        }

没有使用arraylist的索引,你可以使用每个循环

for(String value:ar) {
            String[] tokens=value.split(",");
            System.out.println(tokens[1]);

        }