Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中的Arraylist中创建Arraylist_Java_Arraylist - Fatal编程技术网

在Java中的Arraylist中创建Arraylist

在Java中的Arraylist中创建Arraylist,java,arraylist,Java,Arraylist,这是我的第一篇帖子,如果我把事情搞砸了,或者我不够清楚,我很抱歉。我已经在网上论坛上浏览了好几个小时,花了更多的时间试图为自己找到答案 我正在从一个文件中读取信息,我需要一个循环,该循环每次通过时都会创建一个ArrayList static ArrayList<String> fileToArrayList(String infoFromFile) { ArrayList<String> smallerArray = new ArrayList<String

这是我的第一篇帖子,如果我把事情搞砸了,或者我不够清楚,我很抱歉。我已经在网上论坛上浏览了好几个小时,花了更多的时间试图为自己找到答案

我正在从一个文件中读取信息,我需要一个循环,该循环每次通过时都会创建一个ArrayList

static ArrayList<String> fileToArrayList(String infoFromFile)
{
    ArrayList<String> smallerArray = new ArrayList<String>();
    //This ArrayList needs to be different every time so that I can add them 
    //all to the same ArrayList

    if (infoFromFile != null) 
    {
        String[] splitData = infoFromFile.split(":");

        for (int i = 0; i < splitData.length; i++) 
        {
            if (!(splitData[i] == null) || !(splitData[i].length() == 0)) 
            {
                smallerArray.add(splitData[i].trim());
            }

        }
    }
静态ArrayList文件到ArrayList(字符串infoFromFile)
{
ArrayList smallerArray=新的ArrayList();
//这个ArrayList每次都需要不同,以便我可以添加它们
//都到同一个ArrayList
if(infoFromFile!=null)
{
字符串[]splitData=infoFromFile.split(“:”);
对于(int i=0;i
我需要这样做的原因是,我正在为一个学校项目创建一个应用程序,该应用程序从分隔的文本文件中读取问题。我之前有一个循环,每次从文本中读取一行。我将把该字符串插入此程序

如何使ArrayList smallerArray在每次使用此方法时都成为单独的ArrayList


我需要这个,这样我就可以拥有每个ArrayList的ArrayList-

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class SimpleFileReader {
    private static final String DELEMETER = ":";
    private String filename = null;

    public SimpleFileReader() {
        super();
    }

    public SimpleFileReader(String filename) {
        super();
        setFilename(filename);
    }   

    public String getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public List<List<String>> getRowSet() throws IOException {
        List<List<String>> rows = new ArrayList<>();

        try (Stream<String> stream = Files.lines(Paths.get(filename))) {
            stream.forEach(row -> rows.add(Arrays.asList(row.split(DELEMETER))));
        }

        return rows;
    }
}
import java.io.IOException;
导入java.nio.file.Files;
导入java.nio.file.path;
导入java.util.ArrayList;
导入java.util.array;
导入java.util.List;
导入java.util.stream.stream;
公共类SimpleFileReader{
私有静态最终字符串DELEMETER=“:”;
私有字符串文件名=null;
公共SimpleFileReader(){
超级();
}
公共SimpleFileReader(字符串文件名){
超级();
setFilename(文件名);
}   
公共字符串getFilename(){
返回文件名;
}
public void setFilename(字符串文件名){
this.filename=文件名;
}
公共列表getRowSet()引发IOException{
列表行=新建ArrayList();
try(Stream=Files.line(path.get(filename))){
stream.forEach(row->rows.add(Arrays.asList(row.split(DELEMETER)));
}
返回行;
}
}
下面是上述代码的JUnit测试-

import static org.junit.jupiter.api.Assertions.fail;

import java.io.IOException;
import java.util.List;

import org.junit.jupiter.api.Test;

public class SimpleFileReaderTest {
    public SimpleFileReaderTest() {
        super();
    }

    @Test
    public void testFileReader() {

        try {
            SimpleFileReader reader = new SimpleFileReader("c:/temp/sample-input.txt");
            List<List<String>> rows = reader.getRowSet();

            int expectedValue = 3; // number of actual lines in the sample file
            int actualValue = rows.size(); // number of rows in the list

            if (actualValue != expectedValue) {
                fail(String.format("Expected value for the row count is %d, whereas obtained value is %d", expectedValue, actualValue));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import static org.junit.jupiter.api.Assertions.fail;
导入java.io.IOException;
导入java.util.List;
导入org.junit.jupiter.api.Test;
公共类SimpleFileReaderTest{
公共SimpleFileReaderTest(){
超级();
}
@试验
public void testFileReader(){
试一试{
SimpleFileReader reader=新的SimpleFileReader(“c:/temp/sample input.txt”);
List rows=reader.getRowSet();
int expectedValue=3;//示例文件中的实际行数
int actualValue=rows.size();//列表中的行数
if(实际值!=预期值){
失败(String.format(“行计数的预期值为%d,而获得的值为%d”,expectedValue,actualValue));
}
}捕获(IOE异常){
e、 printStackTrace();
}
}
}

拆分数据[i]==null
不是必需的。它从来都不是
null
。此外,实际的问题是什么?你的问题中没有问号。你的问题是什么?添加它可以使条件始终得到验证。它应该被修改以测试正确的条件。你谈论读取文件,但我在你的示例中看到没有文件访问权限。你也可以这样做列表列表->
ArrayList ListofSmallerList=new ArrayList();