gpt4 book ai didi

java - 从文件将文件添加到集合框架

转载 作者:行者123 更新时间:2023-11-30 05:14:37 25 4
gpt4 key购买 nike

我不想在这里重复线程。我的问题是我正在使用名为 amazon.txt 的 msdos 管道传输一个文件该文件有 637 个单词..我想要计算唯一单词的数量......而不是“a”、“the”、“this”的计数我还没有在代码中计算过..

当我添加到树集中时,它只有 8 个单词..应该至少有 300 个独特的单词..

总文件数 = 637树集的 count2 = 8

我认为树集可以处理重复项?我究竟做错了什么?该文件确实包含一些整数和 $

import java.util.Scanner;
import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.HashSet;

public class practice1
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String word;
//String grab;
int count = 0;
int count2 =0;
int count3 =0;
int count4 =0;
int number;
//ArrayList<String> a = new ArrayList<String>();
TreeSet<String> a = new TreeSet<String>();

while (sc.hasNext())
{
word = sc.next();
count++; // 637 words
a.add(word);
if (word.equals("---"))
{
break;
}
}

Iterator<String> it = a.iterator();

while(it.hasNext())
{
string grab = it.next();
count2++; // 8 words

if (grab.equals("---"))
{
break;
}
}

System.out.println("count2");
System.out.println(count2);
System.out.println("count");
System.out.println(count);
System.out.println("\nbye...");
}
}

最佳答案

计算 TreeSet 中条目数量的方法是迭代 Set,并在第一次看到字符串 "---" 时停止计数。 。

这是不正确的。您可能假设 TreeSet.iterator() 返回的条目顺序与它们插入的顺序相同。isn't the case :

The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used.

这里的“自然排序”是指String.compareTo(String)的结果(因为 String 实现了 Comparable<String> ),它测试字典顺序。换句话说,a TreeSet<String> 的迭代器按字母顺序返回项目。

如果你想知道你的集合的大小,只需使用 size() .

关于java - 从文件将文件添加到集合框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032437/

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