打印给定ArrayList反面的Java代码
所以我试着写一个方法,返回给定ArrayList的相反方向,但它给了我索引错误,我不知道如何解决它。我感谢你的帮助。这是我的代码:打印给定ArrayList反面的Java代码,java,exception,arraylist,compiler-errors,indexoutofboundsexception,Java,Exception,Arraylist,Compiler Errors,Indexoutofboundsexception,所以我试着写一个方法,返回给定ArrayList的相反方向,但它给了我索引错误,我不知道如何解决它。我感谢你的帮助。这是我的代码: import java.util.ArrayList; public class question2 { public static ArrayList<Double> reverse(ArrayList<Double> arraylist) { ArrayList<Double> result = new Array
import java.util.ArrayList;
public class question2 {
public static ArrayList<Double> reverse(ArrayList<Double> arraylist) {
ArrayList<Double> result = new ArrayList<Double>();
for(int i=0; i<arraylist.size(); i++) {
result.set((arraylist.size()) - 1 - i, arraylist.get(i));
}
return result;
}
public static void main(String[] args) {
ArrayList<Double> doubles = new ArrayList<Double>();
doubles.add(1.5);
doubles.add(2.3);
doubles.add(7.7);
doubles.add(8.6);
System.out.println(reverse(doubles));
}
}
公共静态ArrayList反向(ArrayList ArrayList){
ArrayList结果=新的ArrayList(ArrayList.size());
对于(int i=arraylist.size()-1;i>=0;i--){
add(arraylist.get(i));
}
返回结果;
}
希望这能奏效 以下是您可能想尝试的内容。它不需要单独的
列表
,循环次数仅为将整个列表复制到另一个列表的一半
它通过在循环索引向中间移动时交换开始和结束处的值来工作
- 设置
=size
李>list.size()
- 迭代从
到0
i
- 将
处的值保存到变量中i
- 将
位置设置为i
size-i-1
- 将
位置设置为保存的值size-i-1
这将继续进行,直到循环到达中间。请注意,对于大小为偶数的
列表,最里面的值是相邻的并交换的。对于奇数大小的列表,最里面的项目被忽略,因为它的位置正确。你能试试我的代码吗,它对你有用
public static List<Double> reverse(ArrayList<Double> arraylist) {
List<Double> result = Arrays.asList(new Double[arraylist.size()]);
for(int i=0; i<arraylist.size(); i++) {
result.set((arraylist.size()) - 1 - i, arraylist.get(i));
}
return result;
}
公共静态列表反向(ArrayList ArrayList){
列表结果=Arrays.asList(新的双精度[arraylist.size()]);
对于(int i=0;i公共静态字符串反转(ArrayList ArrayList){
ArrayList结果=新建ArrayList();
对于(int i=arraylist.size()-1;i>=0;i--){
add(arraylist.get(i));
}
返回result.toString();
}
reverse()方法的返回类型应该是char[]或String,因为您正在从main方法在控制台上打印请阅读set
方法的文档。我用ArrayList result=ArrayList(ArrayList.size())更改了第一部分还有arraylist.set和arraylist.add,但它不起作用。请向上投票并将其标记为正确答案。提前感谢,它仍然不起作用,并引发相同的异常(我只是复制粘贴)是否可以使用集合。反转(arraylist);我不能,我必须自己写,因为这是为了上学。谢谢你的回答。但我不能使用预先制作的方法,因为这是一种家庭作业。我必须自己写。但无论如何,谢谢:)是的,这也可以用另一种方式工作。谢谢你的回答。我很感激。嗯,它给出了某种错误。但我想那是因为我没有导入所需的库。谢谢你的回答:)
public static ArrayList<Double> reverse(ArrayList<Double> arraylist) {
ArrayList<Double> result = new ArrayList<Double>(arraylist.size());
for(int i=arraylist.size()-1; i>=0; i—-) {
result.add(arraylist.get(i));
}
return result;
}
public static List<Double> reverse(ArrayList<Double> arraylist) {
List<Double> result = Arrays.asList(new Double[arraylist.size()]);
for(int i=0; i<arraylist.size(); i++) {
result.set((arraylist.size()) - 1 - i, arraylist.get(i));
}
return result;
}
public static String reverse(ArrayList<Double> arraylist) {
ArrayList<Double> result = new ArrayList<Double>();
for(int i=arraylist.size() -1; i>=0; i--) {
result.add(arraylist.get(i));
}
return result.toString();