Как мне сохранить данные из этого конструктора с двумя типами данных в массив после токенизации? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть этот класс конструктора здесь

public class Car {
private String make,model;
private int year,mileage;

public String toString() {
return "Car [make=" + make + ", model=" + model +", "
        + "year =" + year + ", mileage=" + mileage + "]"; }


public String getMake() {
    return make;
}
public Car(String make, String model, int year, int mileage) {
    super();
    this.make = make;
    this.model = model;
    this.year = year;
    this.mileage = mileage;
}
public void setMake(String make) {
    this.make = make;
}
public String getModel() {
    return model;
}
public void setModel(String model) {
    this.model = model;
}
public int getYear() {
    return year;
}
public void setYear(int year) {
    this.year = year;
}
public int getMileage() {
    return mileage;
}
public void setMileage(int mileage) {
    this.mileage = mileage;
}
}

Теперь, используя это, я пытаюсь сохранить данные в два массива, где один будет отсортирован с использованием алгоритма сортировки, но у меня возникают проблемы с пониманием того, как яЯ должен хранить их в массивах, когда они разных типов.Я пытался попробовать это самостоятельно, но думаю, что я делаю это неправильно.Предполагается, что он читает из текстового файла и сохраняет марку, модельный год и пробег, но тот факт, что это два типа данных, сбивает меня с толку.

import java.util.ArrayList;
import java.util.StringTokenizer;

public class Storing {

public static void main(String[] args) {

    TextFileInput fileInput = new TextFileInput("CarDetails.txt");
    ArrayList <Car> cars = new ArrayList<Car>();
    String line = fileInput.readLine();


    while(line!=null) {
        int [] values = new int [4];

        StringTokenizer st = new StringTokenizer(line,",");
        int numOfCommas = st.countTokens();

        for(int i = 0;i<numOfCommas;i++) {
            values[i]=Integer.parseInt(st.nextToken(","));
        }
        cars.add(new Car(values[0],values[1],values[2],values[3]));

        line = fileInput.readLine();
    }

Пожалуйста, помогите мне выбрать правильное направление.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Вы можете разобрать его в другой тип данных и обратно.Обобщения позволят использовать один тип данных одновременно, но не два разных типа данных одновременно ...

0 голосов
/ 15 марта 2019

make и model не int (s). Просто прочитайте String[] и проанализируйте только последние два токена. Что-то вроде

while (line != null) {
    String[] values = new String[4];

    StringTokenizer st = new StringTokenizer(line, ",");
    int numOfCommas = st.countTokens();

    for (int i = 0; i < numOfCommas; i++) {
        values[i] = st.nextToken();
    }
    cars.add(new Car(values[0], values[1], 
            Integer.parseInt(values[2]), Integer.parseInt(values[3])));

    line = fileInput.readLine();
}
...