Java列表项

时间:2014-04-17 15:44:28

标签: java list

我正在使用以下代码

List<String> text = new ArrayList<String>();
text.add("Hello");

因此该列表只接受要添加的字符串,如何将更多类型的变量(如整数和字符串)添加到一个列表中,如

在文本列表中添加一些矩形值,如

矩形名称,矩形宽度,矩形高度

所以稍后我可以在循环中访问它们

4 个答案:

答案 0 :(得分:11)

创建您自己的Rectangle类并将这些值存储在其中。

List<Rectangle> rectangles = new ArrayList<>();
rectangles.add(new Rectangle("Foo", 20, 30));

答案 1 :(得分:4)

对Duncan的答案进行了扩展,以下是创建Rectangle类的方法:

public class Rectangle {
    private String name;
    private int height;
    private int width;

    /** 
     * Create a rectangle by calling 
     *   Rectangle myRect = new Rectangle("foo", 20, 10);
     */
    public Rectangle(String name, int height, int width) {
        this.name = name;
        this.height = height;
        this.width = width;
    }
}

您需要向其添加访问器方法,以便您可以检索名称,宽度和高度。这些通常是名为getName和getWidth(昵称​​ getters )的公共方法。您可能还有一个返回该区域的函数。这是一个例子。

public String getName() { return name; } 
public int getHeight() { return height; } 
public int getWidth() { return width; } 

public String area() {
    int area = height * width;
    return "Rectangle " + name + " has an area " + area + ".";
}

答案 2 :(得分:2)

您只需创建一个class,其中包含您需要的变量,并将该类用作list声明中的数据类型。

<强> e.g:

class MyStructure{
  int anInteger;
  double aDouble;
  string aString;
  //Followed by any other data types you need.   

  //You create a constructor to initialize those variables.
  public MyStructure(int inInt, double inDouble, string inString){
     anInteger = inInt;
     aDouble = inDouble;
     aString = inString;
  }
}

然后当你拥有主要或你的方法,并宣布一个列表时,你只需写下:

List<MyStructure> myList = new ArrayList<>();
myList.add(new MyStructure(5, 2.5, "Hello!"));

答案 3 :(得分:0)

虽然创建类的答案肯定是组织程序的更好方法,但问题的答案是创建Object类型的列表。然后,您可以将项目添加到任何类型的列表中。要确定在运行时处理的类型,可以使用instanceof关键字。但要非常清楚,这不是一个好的做法。

List<Object> text = new ArrayList<String>();
text.add("Hello");
text.add(new Integer(10));