Java 转换列表<;字符串[]>;至int[]
如果可以将字符串数组列表Java 转换列表<;字符串[]>;至int[],java,Java,如果可以将字符串数组列表(arraylist)转换为整数数组(int[]),是否可以将字符串数组数组列表(arraylist)转换为整数数组(int[])?如果所有字符串都能正确解析为整数,则是可能的 在列表上迭代,并在数组上的列表中迭代。将字符串解析为整数(例如,使用Integer.parseInt(someString);)并将integervalue存储在整数数组中 当然,您必须在列表中找到值的总数才能初始化数组。在Java 8中: list.stream().mapToInt(Integ
(arraylist)
转换为整数数组(int[])
,是否可以将字符串数组数组列表(arraylist)
转换为整数数组(int[])
?如果所有字符串都能正确解析为整数,则是可能的
在列表上迭代,并在数组上的列表中迭代。将字符串解析为整数(例如,使用Integer.parseInt(someString);
)并将integervalue存储在整数数组中
当然,您必须在列表中找到值的总数才能初始化数组。在Java 8中:
list.stream().mapToInt(Integer::parseInt).toArray();
编辑 由于问题是用
List
而不是List
编辑的,因此解决方案是:
list.stream().flatMap(Arrays::stream).mapToInt(Integer::parseInt).toArray();
运行下面的代码,我希望它满足您的要求
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
ArrayList<String> strArrayList= new ArrayList<String>();
strArrayList.add("1");
strArrayList.add("11");
strArrayList.add("111");
strArrayList.add("12343");
strArrayList.add("18475");
int[] ArrayRes = new int[strArrayList.size()];
int i = 0;
int x = 0;
for (String s : strArrayList)
{
ArrayRes[i] = Integer.parseInt(s);
System.out.println(ArrayRes[i]);
i++;
}
}
}
除我的评论外,您还需要了解如何从二维数组映射到一维数组 这里有一个建议,它的结果是
Integer[]
而不是int[]
,但您可能不担心这一点:
public static void main(String[] args) {
ArrayList<String[]> arrList = new ArrayList<String[]>();
//fill it
arrList.add(new String[] {"11","12","13","14","15"});
arrList.add(new String[] {"21","22","23","24","25"});
arrList.add(new String[] {"31","32","33","34","35"});
arrList.add(new String[] {"41","42","43","44","45"});
arrList.add(new String[] {"41","52","53","54","55"});
//convert it
ArrayList<Integer> ints = new ArrayList<Integer>();
for (String[] array : arrList) {
for (String str : array) {
ints.add(Integer.parseInt(str));
}
}
Integer[] result = ints.toArray(new Integer[] {});
for (int i : result)
System.out.println(i);
}
publicstaticvoidmain(字符串[]args){
ArrayList arrList=新的ArrayList();
//填满它
添加(新字符串[]{“11”、“12”、“13”、“14”、“15”});
添加(新字符串[]{“21”、“22”、“23”、“24”、“25”});
添加(新字符串[]{“31”、“32”、“33”、“34”、“35”});
添加(新字符串[]{“41”、“42”、“43”、“44”、“45”});
添加(新字符串[]{“41”、“52”、“53”、“54”、“55”});
//转换它
ArrayList ints=新的ArrayList();
for(字符串[]数组:arrList){
for(字符串str:array){
add(Integer.parseInt(str));
}
}
整数[]结果=ints.toArray(新整数[]{});
for(int i:结果)
系统输出打印LN(i);
}
我已根据您编辑的答案修改了代码,如果这是您想要的,请务必回复
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
ArrayList<String[]> strArrayList= new ArrayList<String[]>();
String[] str1={"16","1421","1577"};
String[] str2={"15","1451","1461","6556"};
String[] str3={"157","8751","1136","556","879"};
strArrayList.add(str1);
strArrayList.add(str2);
strArrayList.add(str3);
int sizeOfArr=0;
int i=0;
for (String[] s : strArrayList)
{
sizeOfArr+=s.length;
}
int[] ArrayRes = new int[sizeOfArr];
for (String[] s : strArrayList)
{
if(s.length>0){
for (String s1 : s){
ArrayRes[i] = Integer.parseInt(s1);
System.out.println(ArrayRes[i]);
i++;
}
}
}
}
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
ArrayList strArrayList=新的ArrayList();
字符串[]str1={“16”、“1421”、“1577”};
字符串[]str2={“15”、“1451”、“1461”、“6556”};
字符串[]str3={“157”、“8751”、“1136”、“556”、“879”};
strArrayList.add(str1);
strArrayList.add(str2);
strArrayList.add(str3);
int sizeofar=0;
int i=0;
for(字符串[]s:strArrayList)
{
sizeOfArr+=s.长度;
}
int[]ArrayRes=新int[sizeofar];
for(字符串[]s:strArrayList)
{
如果(s.长度>0){
用于(字符串s1:s){
ArrayRes[i]=Integer.parseInt(s1);
System.out.println(ArrayRes[i]);
i++;
}
}
}
}
}
是的,有可能。您的标题和问题不匹配。它是列表还是列表?@NickJ仔细阅读,这个问题很有意义,但不费吹灰之力。ArrayList
是二维的,但您想将其转换为仅为一维的int[]
。除了将字符串解析为int之外,您还需要从2D映射到1D。在堆栈溢出时,我们知道当您接受答案时(正如您对Pratswinz的答案所做的那样),问题就解决了。无需编辑问题的标题。感谢您的回复,但这不是我需要的。我的问题是ArrayList是否可以转换为int[]耶,我以前没有重新检查过它。无论如何,谢谢!如果你有解决方案,我很高兴cz我还找不到任何解决方案。我上面的答案是@NickJ的代码版本,在上面对你的问题的评论中解释过谢谢你Pratswinz!它起作用了,这就是我需要的。至少我有你和@NickJThank you@NickJ的两个解,所以我们应该使用ArrayList映射它,这是我的错误,这就是原因。不管怎样,我从你身上学到了一些东西:)
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
ArrayList<String[]> strArrayList= new ArrayList<String[]>();
String[] str1={"16","1421","1577"};
String[] str2={"15","1451","1461","6556"};
String[] str3={"157","8751","1136","556","879"};
strArrayList.add(str1);
strArrayList.add(str2);
strArrayList.add(str3);
int sizeOfArr=0;
int i=0;
for (String[] s : strArrayList)
{
sizeOfArr+=s.length;
}
int[] ArrayRes = new int[sizeOfArr];
for (String[] s : strArrayList)
{
if(s.length>0){
for (String s1 : s){
ArrayRes[i] = Integer.parseInt(s1);
System.out.println(ArrayRes[i]);
i++;
}
}
}
}
}