如何创建自定义对象的集合或数组

时间:2015-10-08 09:33:38

标签: java collections

我有一个名为anItem的类,它允许我将变量建模到一个对象中。

我有很多这些对象,我想将它们放入一个集合中。该集合的类代码是什么?

这就是我所拥有的:

package com.rest.myproject;

public class anItem 
{
    String name;
    String age;     
    public anItem()
    {
        super();
    }       
    //methods
    public String getName()
    {
        return this.name;
    }       
    public void setName(String newName)
    {
        this.name=newName;
    }    
    public String getAge() 
    {
        return this.age;
    }   
    public void setAge(String newAge)
    {
        this.age=newAge;
    }    
}

Public class aCollectionOfItems 
{
    anItem[] item; ->should I create a array of items to add and remove from?
    public aCollection()
    {
        super();
    }       
    //How do I add aItem to my collection, create an array of items?    
}

3 个答案:

答案 0 :(得分:2)

使用List来保留您的商品。

public class Item {

    private String name;
    private String age;

    //methods
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return this.age;
    }

    public void setAge(String age) {
        this.age = age;
    }

}

public class CollectionOfItems {

    List<Item> items = new ArrayList<>();

    public void addItem(Item item) {
        items.add(item);
    }
}

答案 1 :(得分:1)

    public class CollectionOfItems {
        int size = 10; //any size that is required.
        private final Item[] item;
        public aCollection(){
            super();
            item = new Item[size];
        }
    }

Java Collections也可用于保存项目,以替代Arrays。

答案 2 :(得分:0)

我建议您阅读Oracle的Java集合文档/教程: https://docs.oracle.com/javase/tutorial/collections/


一些简短的例子:

  • ArrayList - 这是一个对象列表,存储为数组。 有用的表格快速赎金访问
  • LinkedList - 这也是一个列表。如果你不提前知道列表的大小,这很有用,但它确实如此 随机访问效率不高
  • HashSet - 这是一套。每个项目只允许一个。使用hashCode()和equals()比较项目。
  • TreeSet - 这也是一套。项目已排序,因此您可以 按某种顺序迭代它们。
  • HashMap - 这是一个键/值集合。 例如,HashMap将存储/检索
  • TreeMap - 这也是键/值存储。物品已分拣。