Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将3个变量与列表2关联 对不起,双张贴,但我需要这个主题运行,因为我的前一个问题搁置,已经这样一个小时,请考虑这个问题,谢谢。p>_Java_List - Fatal编程技术网

Java 将3个变量与列表2关联 对不起,双张贴,但我需要这个主题运行,因为我的前一个问题搁置,已经这样一个小时,请考虑这个问题,谢谢。p>

Java 将3个变量与列表2关联 对不起,双张贴,但我需要这个主题运行,因为我的前一个问题搁置,已经这样一个小时,请考虑这个问题,谢谢。p>,java,list,Java,List,我试图添加3个变量:2个字符串和一个double到一个列表中,并使它们相互对应。比如说,我输入一个字符串,得到一个双精度或另一个字符串。既然列表实际上可以容纳1个变量,那么我该怎么做呢?或者我如何使用列表和其他方法使这3个变量相互对应 例如:SteveJobs 2050.5其中Steve是a,Jobs是b,2050.5是c。我输入乔布斯或史蒂夫,它给我2050.5 以下是迄今为止的代码: public class Person implements Comparable<Object>

我试图添加3个变量:2个字符串和一个double到一个列表中,并使它们相互对应。比如说,我输入一个字符串,得到一个双精度或另一个字符串。既然列表实际上可以容纳1个变量,那么我该怎么做呢?或者我如何使用列表和其他方法使这3个变量相互对应

例如:
SteveJobs 2050.5
其中Steve是
a
,Jobs是
b
,2050.5是
c
。我输入乔布斯或史蒂夫,它给我2050.5

以下是迄今为止的代码:

public class Person implements Comparable<Object> {

String filename = "people.txt";
private String surname;
private String firstName;
private double salary;

private List<Person> list;

public Person(String Surname, String FirstName, double Salary){
    surname = Surname;
    firstName = FirstName;
    salary = Salary;
}

public void makeList(){
    try{
        FileReader fr = new FileReader(filename);
        BufferedReader reader = new BufferedReader(fr);
        String line = reader.readLine();
        Scanner scan = null;
        String fn = "";
        String sn = "";
        double s = 0;
        while(line != null){
            scan = new Scanner(line);
            sn = scan.next().toString();
            fn = scan.next().toString();
            s = scan.nextInt();
            check(sn);
            check(fn);
            checkd(s);
            // Methods to add
            System.out.println("Surname: " + sn +" First Name: "+ fn + " Salary:"+ s);
            line = reader.readLine();
        }
        reader.close();
    }
    catch(FileNotFoundException e){
        System.out.println("File not found: " + filename);
    }
    catch(IOException e){
        System.out.println("Can't read file: " + filename);
    }
}

public int compareTo(Object arg0) {
    return 0;
}

public String getSurname(){
    return surname;
}

public String getFirstName(){
    return firstName;
}

public double getSalary(){
    return salary;
}

public void check(String m) {
    try {
        if (m == null) {
            throw new IOException();
        }
    } catch (IOException e) {
        System.out.println("Wrong lines: " + filename);
    }
}
公共类人员实现可比较{
字符串filename=“people.txt”;
私家姓;
私有字符串名;
私人双薪;
私人名单;
公众人物(字符串姓氏、字符串名、双薪){
姓=姓;
名字=名字;
薪金=薪金;
}
公共void生成列表(){
试一试{
FileReader fr=新的FileReader(文件名);
BufferedReader读取器=新的BufferedReader(fr);
字符串行=reader.readLine();
扫描仪扫描=空;
字符串fn=“”;
字符串sn=“”;
双s=0;
while(行!=null){
扫描=新扫描仪(行);
sn=scan.next().toString();
fn=scan.next().toString();
s=scan.nextInt();
支票(sn);
检查(fn);
检查d(s);
//添加的方法
System.out.println(“姓氏:+sn+”名字:+fn+”薪水:+s);
line=reader.readLine();
}
reader.close();
}
catch(filenotfounde异常){
System.out.println(“未找到文件:“+filename”);
}
捕获(IOE异常){
System.out.println(“无法读取文件:+filename”);
}
}
公共整数比较对象(对象arg0){
返回0;
}
公共字符串getNames(){
返回姓氏;
}
公共字符串getFirstName(){
返回名字;
}
公共双薪制{
返回工资;
}
公共无效检查(字符串m){
试一试{
如果(m==null){
抛出新IOException();
}
}捕获(IOE异常){
System.out.println(“错误行:“+filename”);
}
}
因为一切(不包括int、float..)是java中的对象,您可以使用对象列表。原始变量将通过自动装箱包装为整数、浮点,但在处理数据时,您仍然必须控制正在处理的对象的数据类型。因此,我建议您创建带有3个字段的自定义类,或者将所有内容转换为字符串并使用Str列表取而代之的是一些建议:

1) 关注问题的关键。看来数据结构才是最重要的,而不是文件I/O部分。所以现在先忘掉I/O部分吧

2) 将
人员
与包含人员的数据结构分开。这是不同的事情

3) 想一想数据结构的接口是什么。我认为是这样的,虽然我不确定,但我完全理解这里的要求:

public interface PersonLookup {

    void add(Person person);

    Set<Person> get(String key); 
}

public class Person {
    private String firstName, lastName;
    private Double salary;

    public Person(String firstName, String lastName, Double salary) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.salary = salary;
    }

    ... getters ...

    ... equals() and hashCode() ...
}
公共接口PersonLookup{
无效添加(人);
设置get(字符串键);
}
公共阶层人士{
私有字符串firstName,lastName;
私人双薪;
公众人物(字串姓氏、字串姓氏、双薪){
this.firstName=firstName;
this.lastName=lastName;
这个。薪水=薪水;
}
…获得者。。。
…等于()和hashCode()。。。
}
4) 请记住以下问题:如果两个人的名字或姓氏相同,会发生什么情况?如果某人的名字和某人的姓氏相同,会发生什么情况?在执行查找时,客户端是否需要指示该名称是姓还是名,或者客户端只是指定一个名称,然后指定data结构必须同时搜索名字和姓氏?您对这些问题的回答不仅会影响数据结构的实现,还会影响接口。(提示:想想我为什么使用上面的
集合


祝你好运。

除非你做出一些努力,否则我们不会帮助你。3个变量1个字符串得到双1个变量…Whaaaaat???你的第一个问题已经结束了,因为没有人知道你的问题是什么。你刚刚重新提交了同一个问题。你需要提供你试图完成的示例,展示你的代码我强烈建议您阅读和,然后回来编辑这个问题,这样我们就可以理解您的目的。我猜您的目标是:您有大量相关数据,比如说由两个字符串和一个数字(双精度)组成。您想创建一个包含这些3元素对象实例的列表。我接近了吗?不是认真的。我有两个字符串,分别是
a
b
和一个双
c
,我想使用列表将它们关联起来。例如:“Steve Jobs 2050.5”史蒂夫是
a
,乔布斯是
b
,2050.5是
c
。我输入乔布斯或史蒂夫,它给我2050.5。我该怎么做?我还可以有“比尔·盖茨30.7”和“G Z 1.1”这两个我想要的数量。