0

有必要在一个类中定义一个 HashSet,并且我需要从其他类访问这个 HashSet 并向它添加数据。但是,它并不容易,因为每次都好像 HashSet 被重置并且当我添加新元素时,旧元素消失了。

输出:

[]

[[sdadsa, fafafsa, ghfhgf, kjhkjh]]

[[], [sdadsa, fafafsa, ghfhgf, kjhkjh]]

一级:

public class listaKlasa {
    
        protected static Set<ArrayList<String>> unikatna = new HashSet<ArrayList<String>>();
    
        public static void setUnikatna(ArrayList<String> ista) {
            unikatna.add(ista);
        }
    
        public static Set<ArrayList<String>> getUnikatna() {
            return unikatna;
        }
    }

二等:

public class novitest {

    public static void main(String[] args) {

        System.out.println(listaKlasa.getUnikatna());
        ArrayList<String> li = new ArrayList<>();
        li.add("sdadsa");
        li.add("fafafsa");

        ArrayList<String> la = new ArrayList<>();
        li.add("ghfhgf");
        li.add("kjhkjh");

        listaKlasa.setUnikatna(li);

        System.out.println(listaKlasa.getUnikatna());
        listaKlasa.setUnikatna(la);
        System.out.println(listaKlasa.getUnikatna());
    }
}
4

2 回答 2

2

错误在于添加元素,而不是添加 2:2,而是将所有内容添加到一个列表中。

一级:

public class listaKlasa {
    
        protected static Set<ArrayList<String>> unikatna = new HashSet<ArrayList<String>>();
    
        public static void setUnikatna(ArrayList<String> ista) {
            unikatna.add(ista);
        }
    
        public static Set<ArrayList<String>> getUnikatna() {
            return unikatna;
        }
    }

二等:

   public class novitest {
    
        public static void main(String[] args) {
    
            System.out.println(listaKlasa.getUnikatna());
            ArrayList<String> li = new ArrayList<>();
            li.add("sdadsa");
            li.add("fafafsa");
    
            ArrayList<String> la = new ArrayList<>();
            la.add("ghfhgf");
            la.add("kjhkjh");
    
            listaKlasa.setUnikatna(li);
    
            System.out.println(listaKlasa.getUnikatna());
            listaKlasa.setUnikatna(la);
            System.out.println(listaKlasa.getUnikatna());
        }
    }
于 2021-07-13T10:00:39.530 回答
0

尝试这个:

System.out.println(listaKlasa.getUnikatna());
        ArrayList<String> li = new ArrayList<>();
        li.add("sdadsa");
        li.add("fafafsa");

        ArrayList<String> la = new ArrayList<>();
        la.add("ghfhgf");
        la.add("kjhkjh");
于 2021-07-13T10:01:38.413 回答