Java为具有唯一ID的每条记录创建对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java为具有唯一ID的每条记录创建对象相关的知识,希望对你有一定的参考价值。

我正在这个项目中,我应该解析包含虚构公司数据和其他相关详细信息的文件,为每个记录创建一个对象,并将对象存储到合适的集合中。我已经开始了,但是现在我陷入困境并伸出援手。

我已经设法从本地存储中读取文件并将其输出到控制台,但是奇怪的是它输出了六次详细信息,与我拥有的变量数相匹配。有简单的解决方法吗?

而且,我将使用哪种技术为每条记录生成ID,而每条记录会逐渐增加ID?例如1,2 ... 11,12,13等)>

我已经阅读了有关映射到数据成员和toString()方法的getter方法的信息,但似乎对它的理解不足以将其实现到我的程序中。是否有任何类似的项目可以帮助我了解这些技术的工作方式并有助于我的工作?

import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Scanner;

public class ApplicationRunner 
static void menu()   
    try 
        char quit = 'n';
        String menuInput;
        int menuChoice = 0;

        Scanner scan = new Scanner(System.in);

        while (quit != 'y') 
            System.out.println(
              "\n List traders.......1"
            + "\n Select trader......2"
            + "\n Search locations...3"
            + "\n Search services....4"
            + "\n Exit...............0"
            + "\n\n Enter choice:>");

            menuChoice = scan.nextInt();

        switch (menuChoice) 
            case 1:
                listTraders();
                break;
            case 2:
                selectTrader();
                break;
            case 3:
                searchLocation();
                break;
            case 4:
                searchServices();
                break;
            case 0:
                System.out.println("Exiting...");
                System.exit(0);
                break;
            default:
                System.out.println("Invalid menu selection.");
        

        System.out.println("Quit? y/n");
        menuInput = scan.next().toLowerCase();
        quit = menuInput.charAt(0);
           
    

    catch (Exception inputError)
    
        System.out.println("\nInvalid input value. Valid values 0-4.");
        menu();
      


static void listTraders() 
    String dataFile = System.getProperty("user.dir") + File.separator + "traders.txt";

    try 
        BufferedReader br = new BufferedReader(new FileReader(dataFile));

        String line = null;        

        while ((line = br.readLine()) != null) 
            String[] details = line.split(":");

            String companyName = details[0];
            String location = details[1];
            String services = details[2];
            String description = details[5];
            int numEmployees = Integer.parseInt(details[3]);
            double dailyRate = Double.parseDouble(details[4]);

            for (String printDetails : details) 

                System.out.println(companyName + "\t" + location + "\t" + services +
                        "\t" + description + "\t" + numEmployees + "\t" + dailyRate);
            
        

        br.close();
     catch (IOException e) 
        e.printStackTrace();
    


static void selectTrader() 



static void searchLocation() 



static void searchServices() 



public static void main(String[] args) 
    menu();

此程序中正在使用的交易者文件-https://file.io/xIQWa6

我正在研究这个项目,我应该在其中分析包含虚构公司数据和其他相关详细信息的文件,为每个记录创建一个对象,并将对象存储到...

答案

在下面的代码中,您正在针对details数组的长度运行for循环。 details数组包含6个变量,这就是为什么您看到它打印了6次的原因。要解决此问题,请删除循环并仅打印变量。

以上是关于Java为具有唯一ID的每条记录创建对象的主要内容,如果未能解决你的问题,请参考以下文章

创建一对一关系的表

使用 Linq C# 为 DataTable 的每条记录创建 XML 文件

映射对象标识符

如何为 Oracle 11g 中分层表的每条记录分配父组 ID?

从 JavaScript 中已知的一组潜在 ID 创建唯一字符串 ID/键的快速方法

mysql 数据库创建表 id 字段的 sql 设置