在不同的类中使用Arraylist

时间:2016-12-29 04:42:31

标签: java arraylist

因此,下面的代码通过单词input查找文档中的单词。计算每个句子中出现单词的次数,然后将该计数存储在底部标签a中的圆锥体中,对于圆锥体,将b存储在b中。

我想在另一个班级使用arraylists,但似乎找不到办法。

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++);

        }


        }



    }
    }
}
}

3 个答案:

答案 0 :(得分:1)

  1. 最佳方法:你在main()中都有ArrayLists,将它们作为函数参数传递给需要它们的函数(来自任何类)。

  2. 不太好的方法:将ArrayLists作为包受保护的静态类变量存储在cone和ctwo类中。您可以将其作为cone.A和ctwo.B。

  3. 访问

答案 1 :(得分:1)

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

答案 2 :(得分:0)

你的程序看起来很奇怪。 我建议阅读单词并在hashmap中添加不同的单词,其中key作为单词和值进行计数。