前提・実現したいこと
要素数100の配列に1~999のランダムな数字を入れ、そのまま表示と昇順は出来たが降順の時に下記のエラーメッセージが出てきます。一応降順はされているのですがこの表示が消えません。
考えていることは要素数100なのに例外的な動きがあるからのメッセージだと思っています。
どうすればメッセージを消せますか?
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 100 out of bounds for length 100 at Lesson7B4.main(Lesson7B4.java:35)
Java
java
1import java.util.*; 2import java.util.Arrays; // 昇順 3import java.util.Random; 4import java.util.Collections;//降順 5 6public class aaa { 7 public static void main(String[] args) throws Exception { 8 Integer[] Array = new Integer[100]; 9 Random random = new Random(); 10 11 for(int i=0; i < 100; i++){ 12 Array[i] = random.nextInt(999)+1; //1~999をランダムにArrayに代入 13 } 14 15 System.out.println("ソート前"); 16 for(int i=0; i < 100; i++){ 17 System.out.printf("%3d ",Array[i]); //%3dとは3桁整数表示 18 if((i+1)%10==0){ 19 System.out.println(); 20 } 21 } 22 23 Arrays.sort(Array); //昇順 24 25 System.out.println("ソート後"); 26 for(int i=0; i < 100; i++){ 27 System.out.printf("%3d ",Array[i]); 28 if((i+1)%10==0){ 29 System.out.println(); 30 } 31 } 32 33 for(int i=0; i<=100; i++){ 34 for(int j=0; j<=100-i; j++){ 35 if(Array[j]<Array[j+1]){ 36 int temp=Array[j]; 37 Array[j]=Array[j+1]; 38 Array[j+1]=temp; 39 } 40 } 41 } 42System.out.println("降順ソート後"); 43 for(int k=0; k<Array.length; k++){ 44if((k+1)%10==0){ //10個ごとに改行 45 System.out.println(); 46 } 47 System.out.print(Array[k]+" "); 48 } 49 50 51 52 53 54 } 55}