有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

向arrayList Java添加数据

所以我创建了一个日志程序,用户在其中输入KM并保存它,等等

我考虑了四个变量——开始公里数、结束公里数、开始和结束位置。我是java新手,所以我想知道是否有人可以确认是否有更好的方法来做到这一点。这是我到目前为止的代码,我想将其保存到一个排序数组(列表??)所以我可以访问每个对象,比如startKM,但它们需要在同一行上,就像数组中的对象1一样,然后写入文件

我想做的是将链接列表保存到一个文件中,并添加一个;在toString方法中,以及在读取文件时,在;有更好的方法吗??谢谢大家。数据是根据用户在文本字段中输入的内容分配的

double startKM;
double endKM;
String startLocation;
String endLocation;


startKM = Double.parseDouble(txtStartKM.getText());
endKM = Double.parseDouble(txtEndKM.getText());

startLocation = txtStartLocation.getText();
endLocation = txtEndLocation.getText();

details.startKM = startKM;
details.endKM = endKM;
details.startLocation = startLocation;
details.endLocation = endLocation;

//List<DrivingDetails> detailsList = new ArrayList<DrivingDetails>();
List detailsList = new ArrayList();

detailsList.add(details);

System.out.println("LinkedList contains = \t " + detailsList.toString());

编辑:我有另一个类(DrivingDetails),它包含以下变量:

public class DrivingDetails {

   double startKM;
   double endKM;
   String startLocation;
   String endLocation;
}

共 (1) 个答案

  1. # 1 楼答案

    DrivingDetails类违反了面向对象类的封装原则。我会为所有属性添加setter和getter。此外,还可以创建一个contstructor来为您处理初始化

    public class DrivingDetails {
    
        private double startKM;
        private double endKM;
        private String startLocation;
        private String endLocation;
    
        public DrivingDetails(double startKM, double endKM, String startLocation, String endLocation) {
            this.startKM = startKM;
            this.endKM = endKM;
            this.startLocation = startLocation;
            this.endLocation = endLocation;
        }
    
        public double getStartKM() {
            return startKM;
        }
        public void setStartKM(double startKM) {
            this.startKM = startKM;
        }
    
        // rest of the methods left for you ...
    }
    

    生成的代码如下所示:

    double startKM;
    double endKM;
    try {
        startKM = Double.parseDouble(txtStartKM.getText());
        endKM = Double.parseDouble(txtEndKM.getText());
    } catch (NumberFormatException e | NullPointerException e) {
        // the line above assumes java 7
        // recover
    }
    
    DrivingDetails details = new DrivingDetails(startKM, endKM,
            txtStartLocation.getText(),
            txtEndLocation.getText());
    
    List<DrivingDetails> detailsList = new ArrayList<DrivingDetails>();
    detailsList.add(details);
    

    希望有帮助