在Java中如何将ArrayList元素存储到数组中?
我是Java新手,不知道是否有人能帮我解决下面的逻辑问题。我试图做的是遍历一个列表并将每个列表元素存储到数组中。完成后,我想检查数组元素的正确答案。例如输入3,2,1,那么最终分数应该是3。这是代码 代码在Java中如何将ArrayList元素存储到数组中?,java,Java,我是Java新手,不知道是否有人能帮我解决下面的逻辑问题。我试图做的是遍历一个列表并将每个列表元素存储到数组中。完成后,我想检查数组元素的正确答案。例如输入3,2,1,那么最终分数应该是3。这是代码 代码 import java.rmi.RemoteException; 导入java.util.ArrayList; 导入java.util.List; 公共类迭代平均{ 公共静态积分=0; 静态列表=新的ArrayList(); 静态int[]温度; 公共静态void main(字符串[]args
import java.rmi.RemoteException;
导入java.util.ArrayList;
导入java.util.List;
公共类迭代平均{
公共静态积分=0;
静态列表=新的ArrayList();
静态int[]温度;
公共静态void main(字符串[]args)引发异常{
list.clear();
增加(3);
增加(2);
增加第(1)款;
getScore();
}
公共静态void getScore()引发RemoteException{
温度=新整数[3];
for(整数值:列表){
对于(int i=0;i
非常感谢 当对算法有疑问时:头脑一步一步通过强>
getScore()
tmp
,所有元素初始化为0
value
的值为3
3
添加到数组中的所有元素(使所有元素都成为3)3
-->是否为,增加分数value
的值现在是2
2
添加到数组的所有元素中(使所有元素5
)tmp
中的值将增大,并且在if
-语句中永远不会计算为true
。是否要在内部for循环中使用=
而不是+=
下面是一个示例实现:
static List<Integer> list = new ArrayList<Integer>();
// ...
list.add(3);
list.add(2);
list.add(1);
getScore();
public static void getScore() throws RemoteException {
if (list.get(0) == 3) {
SCORE++;
}
if (list.get(1) == 2) {
SCORE++;
}
if (list.get(2) == 1) {
SCORE++;
}
System.out.println("total score: " + SCORE);
}
static List=new ArrayList();
// ...
增加(3);
增加(2);
增加第(1)款;
getScore();
公共静态void getScore()引发RemoteException{
if(list.get(0)=3){
分数++;
}
if(list.get(1)=2){
分数++;
}
if(list.get(2)==1){
分数++;
}
System.out.println(“总分:+分”);
}
列表
只是一个动态增长的数组。它的行为就像一个数组,您可以使用get(index)
-方法从中获取单个项(这与使用[index]
“等效”)
你根本不需要复制你的内容。但是,如果必须使用数组,则可以在对算法有疑问时使用。将
列表转换为数组:心智单步执行强>
调用getScore()
新数组tmp
,所有元素初始化为0
第一次迭代,value
的值为3
将3
添加到数组中的所有元素(使所有元素都成为3)
检查数组中的第一个元素是否为3
-->是否为,增加分数
下一次迭代,value
的值现在是2
将2
添加到数组的所有元素中(使所有元素5
)
你看到你的缺点了吗
tmp
中的值将增大,并且在if
-语句中永远不会计算为true
。是否要在内部for循环中使用=
而不是+=
下面是一个示例实现:
static List<Integer> list = new ArrayList<Integer>();
// ...
list.add(3);
list.add(2);
list.add(1);
getScore();
public static void getScore() throws RemoteException {
if (list.get(0) == 3) {
SCORE++;
}
if (list.get(1) == 2) {
SCORE++;
}
if (list.get(2) == 1) {
SCORE++;
}
System.out.println("total score: " + SCORE);
}
static List=new ArrayList();
// ...
增加(3);
增加(2);
增加第(1)款;
getScore();
公共静态void getScore()引发RemoteException{
if(list.get(0)=3){
分数++;
}
if(list.get(1)=2){
分数++;
}
if(list.get(2)==1){
分数++;
}
System.out.println(“总分:+分”);
}
列表
只是一个动态增长的数组。它的行为就像一个数组,您可以使用get(index)
-方法从中获取单个项(这与使用[index]
“等效”)
你根本不需要复制你的内容。但是如果必须使用数组,可以使用。包farzi将列表
转换为数组;
导入java.util.ArrayList;
公共类数组列表数组
{
公共静态void main(字符串参数[])
{
ArrayList arrList=新的ArrayList();
添加(“hussi1”);
添加(“hussi2”);
添加(“hussi3”);
String[]strArray=新字符串[arrList.size()];
arrList.toArray(strArray);
对于(int i=0;ipackage farzi;
导入java.util.ArrayList;
公共类数组列表数组
{
公共静态void main(字符串参数[])
{
ArrayList arrList=新的ArrayList();
添加(“hussi1”);
添加(“hussi2”);
添加(“hussi3”);
String[]strArray=新字符串[arrList.size()];
arrList.toArray(strArray);
对于(inti=0;i我只需将正确答案放入一个数组中,并在进行比较时进行比较。无需将内容转换为数组等等
int getScore(List<Integer> answers) {
Integer[] correctAnswers = {3,2,1};
int score = 0;
for (int i = 0; i < 3; i++)
if (correnctAnswers[i].equals(answers.get(i)))
score++;
return score;
}
intgetscore(列出答案){
整数[]correctanks={3,2,1};
智力得分=0;
对于(int i=0;i<3;i++)
if(correnctAnswers[i].equals(answers.get(i)))
分数++;
返回分数;
}
我只是把正确的答案放在一个数组中,一边比较,不需要把东西转换成数组之类的东西
int getScore(List<Integer> answers) {
Integer[] correctAnswers = {3,2,1};
int score = 0;
for (int i = 0; i < 3; i++)
if (correnctAnswers[i].equals(answers.get(i)))
score++;
return score;
}
intgetscore(列出答案){
整数[]正确答案