将整数的ArrayList转换为一个int的最简单方法是什么,列表中的1st Integer是Java中的第一个数字,等等?
例如,整数的ArrayList:1 4 6 7 8 3 8
变为int值1467838
Mic*_*ers 16
Java中最简单的方法是:
int total = 0;
for (Integer i : list) { // assuming list is of type List<Integer>
total = 10*total + i;
}
Run Code Online (Sandbox Code Playgroud)
例如,如果列表包含1 4 6 7 8 3 8,您将获得:
total = 0
total = 10*0 + 1 = 1
total = 10*1 + 4 = 14
total = 10*14 + 6 = 146
...
total = 10*146783 + 8 = 1467838
这是正确的答案.
注意:最简单并不总是最有效.这是在java中,因为您没有指定语言.但你可以做这样的事情:
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(4);
list.add(6);
for (Integer x : list) {
s += x.toString();
}
Integer finalResult = Integer.parseInt(s);
Run Code Online (Sandbox Code Playgroud)
编辑:为了取悦所有注意到这一点的人,如果你真的担心效率,但由于某种原因想要使用这个字符串方法,它应该这样做:
StringBuilder sb = new StringBuilder();
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(4);
list.add(6);
String s;
for (Integer x : list) {
sb.append(x.toString());
}
Integer finalResult = Integer.parseInt(sb.toString());
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,StringBuilder并不是为了简单起见而使用的,因为这看起来像是一个家庭作业.
假设使用 C#(您没有指定:-),但通用算法将适用于您需要的任何语言:
int num = 0;
for( int i = 0 ; i < list.Count ; i++ )
{
num *= 10;
num += (int)list[i];
}
Run Code Online (Sandbox Code Playgroud)
显然,代码假设结果数字足够小,可以用 int 表示,并且 ArrayList 中的每个项目都在 0 到 9 之间(包括 0 和 9)。
归档时间: |
|
查看次数: |
11483 次 |
最近记录: |