【问题标题】:How to use class type ArrayList in Java [closed]如何在 Java 中使用类类型 ArrayList [关闭]
【发布时间】:2012-11-06 06:19:58
【问题描述】:

我正在学习 Java 和 我正在研究类的类的概念

例如, 在 Print.java 中

public class Print{
    public ArrayList<data> list;
    public Print(){
        list = new ArrayList<data>();
    } 


    public void printIndexList() {
        for (data index : list) {
            System.out.format("\", index.name)
        }

        for (String definition : b.def) {
            System.out.format("%-6s", definition);
        }
    }

在data.java中

public class  data{
     public String name
     public ArrayList<String> def;

     public data(){
         def = new ArrayList<String>();
     }
}

并且,在main.java 中, 我有字符串类型 ArrayList "defmain" 和 String 类型 "mainname"

我想在列表中添加defmain和mainname,因为我需要在b.java中使用打印功能

我尝试做的方式

main.java,我创建了:-

Print ia = new ptiny();

Array<Print> mainlist = new Array<Print>();

并且..试图在a.java的列表中赋值

ia.list = mainlist;

但是,它并没有真正起作用。 有人知道在类型为“a”的 Arraylist 中添加字符串值和数组列表的方法吗?

谢谢

【问题讨论】:

  • 详细说明你在做什么,这对你来说很重要,所以最好提供代表你最佳尝试的代码,而不是描述它。
  • 您的a class 中有ArrayList&lt;b&gt;,并且您正在谈论填写ArrayList&lt;a&gt;,它没有在任何地方声明。请考虑重新表述您的内容。
  • 为什么对这个问题投反对票?这只是缺少更好的句子措辞,否则值得在这里发布。
  • 对不起,我不知道如何更好地表达。我只是java的初学者
  • 请注意,根据 Java 约定,类名应以 大写 字母开头。

标签: java class arraylist


【解决方案1】:

请注意,类名应以大写字母开头。以下应该有效:

A ia = new A();
B ib = new B();
ib.def.add("Test");
ia.list.add(ib);
ia.printIndexList();

请注意,我没有分配任何列表。我正在向列表中添加元素。

【讨论】:

  • 感谢这是非常接近的答案,我希望看到。但我最终弄清楚了。谢谢你的帮助!谢谢!!
【解决方案2】:

据我所知,你试图实现你想做的事情是行不通的。

您不能将 a 的列表分配给 b 的列表。

您可以做的是遍历您拥有的 a 列表:

for (a index : list) {
  index.printIndexList();
}

也许这不是您想要的,但很难从您的问题中看出。

另一种方法是您可以将所有 a 中的内容添加到单个 a 中:

for (a index : list) {
  ai.list.addAll(index.list);
}

在 Java 中,类名通常以大写字母开头,因此 a 应为 A,b 应为 B

【讨论】:

    【解决方案3】:

    我只是想通了!!感谢您的帮助

    我需要做的事情浪费了

    我需要创建

    Print var = new Print();
    var.name = "Herry";
    var.defintions = somearraylistin;
    ArrayList<Print> ls = new ArrayList<Print>();
    ls.add(var);
    data.list =is;
    data.printIndexList();
    

    谢谢

    天哪

    这需要将近 3 个小时才能弄清楚!

    :)

    【讨论】:

    • 请遵循 Java 编码约定。你的类名应该以Uppercase 字母开头。请使用一些有意义的类名。 AB 没有意义。
    • b 定义在哪里? b.list= is 是什么意思?
    • Rohit Jain 我该如何更改它?你能给我指导吗?对不起...
    • jahroy 对不起,b 类的名称。喜欢.. Print var = new Print();
    • 编程往往是很多微小的、耗时的问题。在这种情况下,3 小时并不多。
    猜你喜欢
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2014-11-01
    相关资源
    最近更新 更多