Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 ArrayList插入排序问题_Java_Arrays_List_Sorting_Insertion - Fatal编程技术网

Java ArrayList插入排序问题

Java ArrayList插入排序问题,java,arrays,list,sorting,insertion,Java,Arrays,List,Sorting,Insertion,我正试图用arraylist创建一个插入排序程序,但在其中的一些方面出现了错误 每当我尝试运行我的程序时,它都会显示: 线程“main”java.lang.IndexOutOfBoundsException中的异常:索引: 5,大小:5位于java.util.ArrayList.rangeCheck(ArrayList.java:635)处 get(ArrayList.java:411)位于 main(NewInsertionSort.java:20) 但我不明白我在哪里把它叫做“出界” 接下来

我正试图用arraylist创建一个插入排序程序,但在其中的一些方面出现了错误

每当我尝试运行我的程序时,它都会显示:

线程“main”java.lang.IndexOutOfBoundsException中的异常:索引: 5,大小:5位于java.util.ArrayList.rangeCheck(ArrayList.java:635)处 get(ArrayList.java:411)位于 main(NewInsertionSort.java:20)

但我不明白我在哪里把它叫做“出界”

接下来,它说我的局部变量“k”的值从未使用过,但它应该

如果有人能帮助我,那太好了,谢谢你的支持

这是我的密码:

import java.util.ArrayList;


public class NewInsertionSort {

    public static void main(String[] args) {

        ArrayList <Integer> InsertionSort = new ArrayList <Integer>(); 
        InsertionSort.add(1);
        InsertionSort.add(52);
        InsertionSort.add(21);
        InsertionSort.add(45);
        InsertionSort.add(27); 


        Integer a; 
        Integer lock; 
        Integer c; 
        for (c = 1; c < InsertionSort.size(); c++);{
            lock = InsertionSort.get(c); 
            System.out.println(lock); 


            for (a = c - 1; (a >= 0) && (InsertionSort.get(a) < lock); a--){
                 Integer k = InsertionSort.get(a+1); 
                 Integer h = InsertionSort.get(a);

                 k = h;   
            } 
            lock = InsertionSort.get(a+1);  

        }

        for(int z=0;z < InsertionSort.size(); z++){
            System.out.println(InsertionSort.get(z)); 
        }


    }

}
import java.util.ArrayList;
公共类NewInsertionSort{
公共静态void main(字符串[]args){
ArrayList InsertionSort=新的ArrayList();
InsertionSort.add(1);
插入排序。添加(52);
InsertionSort.add(21);
InsertionSort.add(45);
插入排序。添加(27);
整数a;
整数锁;
整数c;
对于(c=1;c=0)和&(InsertionSort.get(a)
是一种基于零的数据结构(链接的Javadoc在某种程度上说,如果索引超出范围(index<0 | | index>=size()),它会抛出一个错误)。这意味着有效索引是
0
n-1
(其中
n
大小

是一个基于零的数据结构(链接的Javadoc部分表示,如果索引超出范围(index<0 | | index>=size()),它将抛出一个错误)。这意味着有效索引是
0
n-1
(其中
n
大小


谢谢,我不知道我怎么没看到,但它还是说K没用?是的。。因为k没有被使用。将h的值赋给变量k,但。。。之后就不用了。所以这是毫无意义的。我甚至不明白为什么你先分配给k,然后分配给h,然后再分配给k。。。您可以删除h变量并分配InsertionSort.get(a);直接到k。但即使这样,你也必须在代码中的某个地方使用它。我正试图将a的值赋给a+1的值,所以我得到这两个值并用它们生成变量,然后将这些变量设置为彼此相等的值。谢谢,我不知道我怎么没有看到它,但它仍然说K没有被使用?是的。。因为k没有被使用。将h的值赋给变量k,但。。。之后就不用了。所以这是毫无意义的。我甚至不明白为什么你先分配给k,然后分配给h,然后再分配给k。。。您可以删除h变量并分配InsertionSort.get(a);直接到k。但即使这样,你也必须在代码中的某个地方使用它。我试图将a的值赋给a+1的值,因此我得到这两个值,并用它们生成变量,然后将这些变量设置为彼此相等
for (c = 1; c < InsertionSort.size(); c++) {
    lock = InsertionSort.get(c - 1); 
for (c = 0; c < InsertionSort.size(); c++) {
    lock = InsertionSort.get(c); 
List<Integer> insertionList = new ArrayList<>();
for (c = 1; c < InsertionSort.size(); c++) --> ; <-- {
            lock = InsertionSort.get(c); 
            System.out.println(lock); 
insertionSort.set(a+1, h);