Java ArrayList<;MyClass>;问题

Java ArrayList<;MyClass>;问题,java,object,arraylist,Java,Object,Arraylist,我正在尝试从一个句子中获取所有可能的单词组合,并将其存储到数组列表中 其中MyClass.java class MyClass{ private static ArrayList<String> wordList; private static ArrayList<Integer> wordListCode; private static int frequency; private static int timeId; public MyClass(ArrayLis

我正在尝试从一个句子中获取所有可能的单词组合,并将其存储到数组列表中
其中MyClass.java

class MyClass{

private static ArrayList<String> wordList;
private static ArrayList<Integer> wordListCode;
private static int frequency;
private static int timeId;

public MyClass(ArrayList<String> words, int tid, int freq){
    wordList = new ArrayList<String>();
    wordListCode = new ArrayList<Integer>();

    if(words.get(0).hashCode()> words.get(1).hashCode()){
        wordList.add(words.get(0));    wordListCode.add(words.get(0).hashCode());
        wordList.add(words.get(1));    wordListCode.add(words.get(1).hashCode());
    }else{
        wordList.add(words.get(1));    wordListCode.add(words.get(1).hashCode());
        wordList.add(words.get(0));    wordListCode.add(words.get(0).hashCode());
    }
    frequency = freq;
    timeId = tid;
}}
class-MyClass{
私有ArrayList词表;
私有ArrayList wordListCode;
专用整数频率;
私有int-timeId;
...
.....
}
删除字段上的
静态
修饰符

这意味着您对您不想要的
MyClass
的每个对象使用相同的实例。您希望每个实例都有自己的列表和属性

class MyClass{
私有ArrayList词表;
私有ArrayList wordListCode;
专用整数频率;
私有int-timeId;
...
.....
}
删除字段上的
静态
修饰符

这意味着您对您不想要的
MyClass
的每个对象使用相同的实例。您希望每个实例都有自己的列表和属性


删除
静态
修改器

来自JLS 8.3.1.1。静态字段

如果一个字段被声明为静态,则只存在一个 字段,无论类有多少个实例(可能为零) 可能最终会被创造出来。静态字段,有时称为类 变量,在初始化类时具体化(§12.4)

未声明为静态的字段(有时称为非静态字段) 字段)称为实例变量。每当一个新的 类被创建(§12.5),一个与该实例关联的新变量 为该类中声明的每个实例变量或任何 它的超类

有关更多信息,请参阅

所以把你的代码改成

class MyClass{

  private ArrayList<String> wordList;
  private ArrayList<Integer> wordListCode;
  private int frequency;
  private int timeId;
  ...
  .....
}}
class-MyClass{
私有ArrayList词表;
私有ArrayList wordListCode;
专用整数频率;
私有int-timeId;
...
.....
}}

删除
静态
修改器

来自JLS 8.3.1.1。静态字段

如果一个字段被声明为静态,则只存在一个 字段,无论类有多少个实例(可能为零) 可能最终会被创造出来。静态字段,有时称为类 变量,在初始化类时具体化(§12.4)

未声明为静态的字段(有时称为非静态字段) 字段)称为实例变量。每当一个新的 类被创建(§12.5),一个与该实例关联的新变量 为该类中声明的每个实例变量或任何 它的超类

有关更多信息,请参阅

所以把你的代码改成

class MyClass{

  private ArrayList<String> wordList;
  private ArrayList<Integer> wordListCode;
  private int frequency;
  private int timeId;
  ...
  .....
}}
class-MyClass{
私有ArrayList词表;
私有ArrayList wordListCode;
专用整数频率;
私有int-timeId;
...
.....
}}

阅读静态与非静态。这是因为类中的字段是静态的谢谢大家!我一点也没注意到…请仔细阅读静态与非静态。这是因为您的类中的字段是静态的谢谢大家!我根本没注意到。。。
class MyClass {

  private ArrayList<String> wordList;
  private ArrayList<Integer> wordListCode;
  private int frequency;
  private int timeId;
  ...
  .....
}
class MyClass{

  private ArrayList<String> wordList;
  private ArrayList<Integer> wordListCode;
  private int frequency;
  private int timeId;
  ...
  .....
}}