gpt4 book ai didi

Java:创建一个类的列表(List),并迭代它

转载 作者:行者123 更新时间:2023-12-02 12:59:06 26 4
gpt4 key购买 nike

我有 C# 背景,我正在尝试弄清楚如何像在 C# 中使用类一样使用类。如果这不是在 Java 中使用它们的方法,我想知道正确的方法。

基本上,这就是我想做的:

  1. 创建列表并填充数据。
  2. 迭代上述列表

这是我迄今为止的尝试:

  1. 这是我想要的类对象:

    public class ClassName
    {
    public ClassName(String _str, int _a, int _b, int _c, int _d, long _e)
    {
    str = _str;
    a = _a;
    b = _b;
    c = _c;
    d = _d;
    e = _e;
    }
    public String str;
    public int a;
    public int b;
    public int c;
    public int d;
    public long e;
    }
  2. 这是在主类文件中引用它的方式:

    // Why would I use this instead of List<T>?
    ArrayList<ClassName> hList = new ArrayList<ClassName>();
  3. 这就是我尝试填充类对象的方式:

    hList.add(new ClassName("string", 1, 2, 3, 4, 2432342322));

这是我在 Eclipse 中遇到的错误:

构造函数 ClassName(String, int, int, int, int, long) 未定义

...这令人困惑。 Eclipse 要求我添加我已经添加的内容。当我选择“快速修复”选项时,它会执行与上面的构造函数相同的操作,但没有 type = type 内容。也许我没有正确处理这个问题?

假设这是正确的迭代方式,我认为这是可行的:

for (int i = 0; i < hList.size(); i++)
{
System.out.println(hList[i].currentDate);
}

那么,如何创建一个正确的列表并在 Java 中迭代它?

最佳答案

public ClassName(string _str, int _a, int _b, int _c, long _d)
{
str = _str;
a = _a;
b = _b;
c = _c;
d = _d;
}

使用下划线命名并不常见。我建议使用this反而。另外,String是大写的,大括号通常位于行尾。

public ClassName(String str, int a, int b, int c, long d) {
this.str = str;
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}

// Why would I use this instead of List<T>?
ArrayList<ClassName> hList = new ArrayList<ClassName>();

更通用的类型,例如 List , Collection ,或Iterable左侧更好,与 C# 中相同。我建议不要使用匈牙利表示法:list优先于 hList 。此外,您可以省略右侧类型名称并使用 diamond operator ( <> ) 来推断类型。

List<ClassName> list = new ArrayList<>();

The constructor ClassName(String, int, int, int, int, long) is undefined.

你的构造函数有三个 int和a long ;你正试图通过四 int和a long .

Assuming this is the right way to iterate, here's what I'd assume would work:

for (int i = 0; i < hList.size(); i++)
{
System.out.println(hList[i].currentDate);
}

如果不需要索引变量,则每个循环都更好 i .

 for (ClassName item: list) {
System.out.println(item.currentDate);
}

如果你确实想要i然后更改 [i].get(i) 。 Java 没有运算符重载,因此[]仅适用于数组,不适用于类似 List 的类或接口(interface).

for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).currentDate);
}

关于Java:创建一个类的列表(List<Class>),并迭代它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33112088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com