嗨我想尝试按字母顺序获取这些水果可以有人帮忙请当我尝试运行它关闭的程序并说NullPointer异常java Lang但它编译没有问题我认为问题与.compareTo行我是不太确定
import java.io.*;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Write a description of class rigthOrder here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class rigthOrder
{
public static void main (String args []) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i;
String fruit [] = new String[1000];
List<String> fruitsList = Arrays.asList (fruit);
fruit[0] = "orange";
fruit[1] = "bananna";
fruit[2] = "apple";
fruit[3] = "grape";
fruit[4] = "plum";
// for(i = 0; i < fruit.length; i++)
{
// fruit [i] = fruit [i].toUpperCase();
}
Bubble_sort(fruit);
for(i = 0; i < fruit.length; i++)
{
System.out.println(fruit [i]);
}
}
public static void Bubble_sort(String [] fruit)
{
int i, j, size = fruit.length;
String temp;
for(i = 0; i < size-1; i++)
{
for(j = i + 1; j < size; j++)
{
if (fruit[j].compareTo (fruit[i]) < 0)
{
temp = fruit[i];
fruit[i] = fruit [j];
fruit[j] = temp;
}
}
}
}
}
答案 0 :(得分:1)
String fruit[] = new String[1000];
String
数组元素的默认值为null
。这就是Arrays.asList(fruit)
抛出NPE的原因。
答案 1 :(得分:0)
你创建了一个包含1000个元素的数组,只填充了其中的5个元素。
String fruit [] = new String[1000];
使这个数组适当长度,它将停止失败。
答案 2 :(得分:0)
您要声明一个大小为1000的数组
String fruit [] = new String[1000];
然后填写1000个插槽中的五个
fruit[0] = "orange";
fruit[1] = "bananna";
fruit[2] = "apple";
fruit[3] = "grape";
fruit[4] = "plum";
其余的是什么?
答案 3 :(得分:0)
String fruit [] = new String[5];
这将解决您的问题。
答案 4 :(得分:0)
除了其他答案之外,您还可以以静态方式声明数组:
String[] fruit = new String[] {"orange", "bananna", "apple", "grape", "plum"}
这样就可以自动计算尺寸。