Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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中从列表数组填充字符串数组_Java_Android_Arrays - Fatal编程技术网

在Java中从列表数组填充字符串数组

在Java中从列表数组填充字符串数组,java,android,arrays,Java,Android,Arrays,这是我第一次涉足Java,所以请原谅我,如果这很简单的话,但我很难遍历列表并用列表项填充字符串数组 具体来说,我使用Jsoup解析url并提取某些元素: Document doc = Jsoup.connect(content).get(); Elements threads = doc.getElementsByClass("page-link"); for (Element src : threads){ String title = src.text(); String h

这是我第一次涉足Java,所以请原谅我,如果这很简单的话,但我很难遍历列表并用列表项填充字符串数组

具体来说,我使用Jsoup解析url并提取某些元素:

Document doc = Jsoup.connect(content).get();
Elements threads = doc.getElementsByClass("page-link");
for (Element src : threads){
    String title = src.text();
    String href = src.attr("href");
        THREADS[0] = title;
}
线程是一个字符串数组:

static final String[] THREADS = new String[] {};

我似乎无法遍历元素数组并用标题值填充线程。在上面的示例中,保留
线程[0]
索引,成功地将最终标题值按预期推送到字符串[]中。但是使用(i=0;i的
必须初始化数组:

static final String[] THREADS = new String[25];

当然你不是指(i=0;i>25;i++)的
而是指(i=0;i的
,你已经创建了一个零元素数组,数组不能调整大小。你不只是使用
列表的原因是什么

static final List THREADS=new ArrayList();
// ...
对于(元素src:threads){
字符串title=src.text();
字符串href=src.attr(“href”);
添加(标题);
}

Java数组的大小在创建时是固定的:当您在数组中添加元素时,它们不会自动增长

如果您事先知道要放入其中的元素数量,则可以创建具有该大小的数组。在您的情况下,类似于:

String[] THREADS = new String[threads.size()]; int i = 0; for (Element src : threads) { String title = src.text(); String href = src.attr("href"); THREADS[i++] = title; }
可能会使用THREADS.toArray(新字符串[0])完成,以便在最后生成一个数组。如果您真的需要数组。谢谢,这是可行的。但是,每次我调用“static final List THREADS=new ArrayList();”时,它都不会重新初始化为空列表,因此THREADS.add()我知道这可能是一个不同的问题,但我对Java的不熟悉让我想知道是否有一种简单的方法可以确保每次调用线程时线程都初始化为空列表?@aperture:每次调用什么?你明白
static
做什么吗es?Jsoup.connect().get()的;是从一个java类调用的,该类从另一个类中的onclick事件接收其URL变量。因此,理想情况下,每次触发onclick事件时,线程都会填充新元素。它现在所做的是将新元素附加到以前调用的集合的末尾。我正在阅读一些关于静态和最终d每一个都意味着什么,并寻找改变什么以达到预期的结果——显然,简单地删除“静态”就足够了。谢谢 String[] THREADS = new String[threads.size()]; int i = 0; for (Element src : threads) { String title = src.text(); String href = src.attr("href"); THREADS[i++] = title; } List<String> THREADS = new ArrayList<String>(); for (Element src : threads) { String title = src.text(); String href = src.attr("href"); THREADS.add(title); }