Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 如何在没有重复单词的情况下将单词存储到数组/数组列表中_Java_Arrays_Arraylist_File Io - Fatal编程技术网

Java 如何在没有重复单词的情况下将单词存储到数组/数组列表中

Java 如何在没有重复单词的情况下将单词存储到数组/数组列表中,java,arrays,arraylist,file-io,Java,Arrays,Arraylist,File Io,对于我正在制作的这个程序,我需要从txt文件中快速阅读句子,并将单词存储到数组/列表中。我陷入困境的地方是不能重复单词,而且还要为单词在数组中的位置、单词在每个句子中的位置以及单词总数创建数组。一旦我完成了数组,我必须让用户询问他们想看哪句话,并为他们打印出来 import java.util.*; import java.io.*; public class CSC240_Week1MsgMapping { public static void main(String[] args)

对于我正在制作的这个程序,我需要从txt文件中快速阅读句子,并将单词存储到数组/列表中。我陷入困境的地方是不能重复单词,而且还要为单词在数组中的位置、单词在每个句子中的位置以及单词总数创建数组。一旦我完成了数组,我必须让用户询问他们想看哪句话,并为他们打印出来

import java.util.*; 
import java.io.*;

public class CSC240_Week1MsgMapping
{
   public static void main(String[] args) throws IOException
   {
      Scanner kb = new Scanner(System.in);
      System.out.print("Enter name of a file");
      String filename = kb.nextLine();
      File file = new File(filename);
      Scanner inputFile = new Scanner(file);
      ArrayList<String> msgs = new ArrayList<String>();

      while(inputFile.hasNext())
      {
         msgs.add(inputFile.nextLine());

当我试图不复制列表中的对象时,我总是使用HashMap,因为对于其中一个,它有containsObject ob方法,如果HashMap已经有对象ob,则返回true,这在您的情况下很有用

在您的例子中,我建议您使用HashMap,字符串将是某个单词,而ArrayList将是该单词所有位置的列表

另外,在插入单词之前,您需要使用map.containsSwarm方法检查它是否已经在HashMap中,如果单词存在,您只需将位置添加到ArrayList realtive中,并将其添加到单词map.getword.addposition中,如果单词不存在,这意味着您需要将单词添加到HashMap,然后继续添加其位置

最后,要获得某个单词的计数,只需使用ArrayList ex:map.getword.size的size方法