在不同类别中使用Arraylist

问题描述:

因此,下面的代码将文档中的单词视为由单词输入特定的单词。统计每个句子中单词出现的次数,然后将该计数存储在圆锥体底部标签a处的数组列表中,将数量存储在ctwo中。在不同类别中使用Arraylist

我想在另一个类中使用arraylist,但似乎无法找到一种方法来完成它。

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 

public class exc { 

    public exc() { 
     } 
public static void main(String[] args) throws Exception  { 
cone aa = new cone(); 
ctwo bb = new ctwo(); 
// after this I'm stuck 

} 
} 
    import java.io.BufferedReader; 
     import java.io.FileReader; 
     import java.util.Arrays; 
     import java.util.List; 

public class cone { 

public void cone() throws Exception  { 

        BufferedReader e = new BufferedReader(new FileReader("words to be read.txt")); 
         String o; 
         while((o = e.readLine()) != null){ 

          String[] sentences = o.split("\\b[.!?]\\s+"); 

         //System.out.println(o); 
          String [] h = sentences; 

         { 

          BufferedReader t = new BufferedReader(new FileReader("Text to be scan.txt")); 
          String g; 
          while((g = t.readLine()) != null){ 

           String[] set=g.split(" "); 

           List<String> list = Arrays.asList(set); 

          // System.out.println(Arrays.toString(set)); 
           //System.out.println(o); 

          int sentenceNumb=1; 
          for (String sentence: h) { 
           int counter=0; 
           String[] words = sentence.replace(".", "").split(" "); 
           for(String word: words) { 
            if (list.contains(word)) { 
             counter++; 
            } 
           } 


           List<Integer> A = Arrays.asList(counter++); 

          } 


          } 



         } 
         } 

} 
} 

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.util.Arrays; 
import java.util.List; 


public class ctwo { 


public void ctwo() throws Exception  { 

BufferedReader e = new BufferedReader(new FileReader("words to be read.txt")); 
    String o; 
    while((o = e.readLine()) != null){ 

     String[] sentences = o.split("\\b[.!?]\\s+"); 

    //System.out.println(o); 
     String [] h = sentences; 

    { 

     BufferedReader t = new BufferedReader(new FileReader("Text to be scan.txt")); 
     String g; 
     while((g = t.readLine()) != null){ 

      String[] set=g.split(" "); 

      List<String> list = Arrays.asList(set); 

     // System.out.println(Arrays.toString(set)); 
      //System.out.println(o); 

     int sentenceNumb=1; 
     for (String sentence: h) { 
      int counter=0; 
      String[] words = sentence.replace(".", "").split(" "); 
      for(String word: words) { 
       if (list.contains(word)) { 
        counter++; 
       } 
      } 


      List<Integer> B= Arrays.asList(counter++); 

     } 


     } 



    } 
    } 
} 
} 
+0

使两个方法都返回'ArrayList's? – Jyr

  1. 最好的办法:你有两个在main(),其作为传递函数参数给需要它们的功能(从任何类)中的ArrayList。

  2. 不太好的方法:将ArrayLists作为包保护的静态类变量存储在cone和ctwo类中。你可以通过cone.A和ctwo.B访问它们。

你的程序看起来很奇怪。 我会建议阅读单词并添加不同的单词作为单词和值,因为它的计数密钥hashmap。

+0

我该怎么做? – DMW18

在两个类的构造函数中传递相同的数组列表。

+0

如何?我是新来的Java你如何做到这一点? – DMW18