输出了不是预想的,咋回事呀大神们help!
import java.util.Scanner;
import java.*;
public class Car {
private String name;
private String color;
private double weight;
private int price;
public Car(String n,String c,double w,int p) {
name=n;
color=c;
weight=w;
price=p;
}
public void displayCar() {
System.out.print(" name:"+name);
System.out.print(" ,color:"+color);
System.out.print(" ,weight:"+weight);
System.out.print(" ,price"+price);
}
public String getN() {
return name;
}
} class ArrayInob{
private Car[] p;
private int nElems;
public ArrayInob(int max){
p = new Car[max];
nElems = 0;
} public void insert(String n,String c,double w,int price)
{
p[nElems] = new Car(n,c,w,price);
nElems++;
}
public void display()
{
for(int j=0; j<nElems; j++)
System.out.print(p[j] + " ");
System.out.println("");
}
public void insertionSort()
{
int in, out; for(out=1; out<nElems; out++)
{
Car temp = p[out];
in = out;
while(in>0 && p[in-1].getN().compareTo(temp.getN())>0)
{
p[in] = p[in-1];
--in;
}
p[in] = temp;
}
}
}
import java.util.Scanner;
class CarSort{
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int maxSize = 100;
ArrayInob arr;
arr = new ArrayInob(maxSize);
System.out.println("请依次输入汽车的品牌、颜色、自重、价格");
for(int i=1;i<5;i++) {
String n =in.next();
String c =in.next();
double w =in.nextDouble();
int p =in.nextInt();
arr.insert(n, c, w, p);
}
arr.insertionSort();
arr.display();
}
}
import java.util.Scanner;
import java.*;
public class Car {
private String name;
private String color;
private double weight;
private int price;
public Car(String n,String c,double w,int p) {
name=n;
color=c;
weight=w;
price=p;
}
public void displayCar() {
System.out.print(" name:"+name);
System.out.print(" ,color:"+color);
System.out.print(" ,weight:"+weight);
System.out.print(" ,price"+price);
}
public String getN() {
return name;
}
} class ArrayInob{
private Car[] p;
private int nElems;
public ArrayInob(int max){
p = new Car[max];
nElems = 0;
} public void insert(String n,String c,double w,int price)
{
p[nElems] = new Car(n,c,w,price);
nElems++;
}
public void display()
{
for(int j=0; j<nElems; j++)
System.out.print(p[j] + " ");
System.out.println("");
}
public void insertionSort()
{
int in, out; for(out=1; out<nElems; out++)
{
Car temp = p[out];
in = out;
while(in>0 && p[in-1].getN().compareTo(temp.getN())>0)
{
p[in] = p[in-1];
--in;
}
p[in] = temp;
}
}
}
import java.util.Scanner;
class CarSort{
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int maxSize = 100;
ArrayInob arr;
arr = new ArrayInob(maxSize);
System.out.println("请依次输入汽车的品牌、颜色、自重、价格");
for(int i=1;i<5;i++) {
String n =in.next();
String c =in.next();
double w =in.nextDouble();
int p =in.nextInt();
arr.insert(n, c, w, p);
}
arr.insertionSort();
arr.display();
}
}
String是包装类所以compareTo不能用于比较String类型,比较String需要Car类中重写compare方法。