gpt4 book ai didi

java - 如何从文件中获取前 4 个整数。

转载 作者:行者123 更新时间:2023-12-02 05:25:52 26 4
gpt4 key购买 nike

我有一个文件,其中包含姓名、性别以及拥有该姓名的人数的列表。

示例:

阁楼,M,416

莎拉,F,800

伯纳德,M,413

杰西卡,女,1300

巴里,男,408

德里克,男,407

米切尔,M,407

纳撒尼尔,M,404

我正在尝试获取名称数量最多的前 4 个名称,但我在这样做时遇到了困难。我已经尝试过,但似乎不起作用。我遇到找不到符号错误。另外,我想知道是否有更有效的方法来执行此功能,因为如果我必须找到更大文件的前 10 个,我这样做的方法可能会变得非常长。

    while(sc.hasNextLine())
{

// read a line from the input file via sc into line
line = sc.nextLine();



StringTokenizer stk = new StringTokenizer(line, ",");
String name = stk.nextToken();
char sex = stk.nextToken().charAt(0);
int count = Integer.parseInt(stk.nextToken());


OneName list = new OneName(name, sex, count);

oneName.add(list);


}

String many= oneName.get(0).toString();
int a = oneName.get(0).getCount();
for (int i = 0; i< oneName.size(); i++)
{

int b = oneName.get(i).getCount();
int c = oneName.get(i).getCount();
int d = oneName.get(i).getCount();
String man= oneName.get(i).toString();
if ( a < b)
{
a = b;
b = a ;

}
if (b < c)
{
b = c;
c = b;
}
if (c < d)
{
c = d;
d = c;

}

}

System.out.println(a+b+c+d);
}

最佳答案

我不知道 oneName 的类型。如果是列表,您可以使用标准 API 中的 Collections.sort() 方法:

Collections.sort(oneName, new Comparator<OneName>()
{
public int compare(OneName o1, OneName o2)
{
return o2.getCount() - o1.getCount();
}
});

那么 oneName 的前 4 个元素将是计数最高的元素。

在您的代码中,只需将最后一个循环替换为上面对 Collections.sort() 的调用即可。然后您可以获得 4 个最高计数(您必须检查数组索引是否在边界内):

OneName a = oneName.get(0);
OneName b = oneName.get(1);
OneName c = oneName.get(2);
OneName d = oneName.get(3);

关于java - 如何从文件中获取前 4 个整数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26036079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com