在Java中创建自定义集合

在Java中创建自定义集合,java,inheritance,collections,Java,Inheritance,Collections,我不太确定如何做到这一点,但我发现自己在这个特定项目中经常使用列表列表。我想我想把它重构成它自己的收藏。基本上,它是一个用户及其属性的列表。我使用的对象是一个列表。我想我想做一个替换,可能扩展ArrayList,并称之为UserList或类似的东西 注意:我唯一的真正目标是不要到处键入List 对此采取什么样的最佳方法 编辑:谢谢。我想我知道有些事情会更好。只是我不能完全把手指放在上面。我最初避免创建User类,因为我不确定如何轻松地迭代属性 无需为这些需求创建自定义的列表 创建一个User类来

我不太确定如何做到这一点,但我发现自己在这个特定项目中经常使用列表列表。我想我想把它重构成它自己的收藏。基本上,它是一个用户及其属性的列表。我使用的对象是一个
列表
。我想我想做一个替换,可能扩展
ArrayList
,并称之为
UserList
或类似的东西

注意:我唯一的真正目标是不要到处键入
List

对此采取什么样的最佳方法


编辑:谢谢。我想我知道有些事情会更好。只是我不能完全把手指放在上面。我最初避免创建
User
类,因为我不确定如何轻松地迭代属性

无需为这些需求创建自定义的
列表

创建一个
User
类来存储所有属性,然后创建一个
列表

您不应该这样做。 您将花费更多的时间编写这个新类,而不仅仅是键入几个额外的字符

如果你真的想上新课。 为什么不这样呢

public class User {

    private String attribute1;
    private String attribute2;
    //etc.

    public String getAttribute1() {
        return attribute1;
    }

    public void setAttribute1(String value) {
        attribute1 = value;
    }

    public String getAttribute2() {
        return attribute2;
    }

    public void setAttribute2(String value) {
        attribute2 = value;
    }

    //etc.
}
如果您坚持使用嵌套的
列表
s。 我建议创建一个如下所示的包装器类:

public class Users {

    private List<List<String>> twoDList;

    public String get(int x, int y) {
        return twoDList.get(y).get(x);
    }

    public void set(int x, int y, String value) {
        twoDList.set(y, twoDList.get(y).set(x, value));
    }

    //etc.
}
公共类用户{
私人名单;
公共字符串get(int x,int y){
返回twoDList.get(y.get(x);
}
公共无效集(整数x,整数y,字符串值){
twoDList.set(y,twoDList.get(y).set(x,value));
}
//等等。
}

如果唯一的目标是减少输入,你确定这确实值得吗?你应该支持组合而不是继承。如果您真的想更方便地使用List方法,请在自定义类中包装一个List。请注意,UserList实际上只是一个列表,所以我将重点放在用户类而不是UserList类上?单独处理每个属性不是更好吗?在我的例子中,不是。基本上,我从LDAP中提取用户信息,并将其存储在一个更小、更易于管理的数据库中(具有导出到CSV的选项)。因此,我需要迭代所有的用户和他们的属性来进行插入。@m4rtin每次我认为我知道关于Java的一切有用的东西。。。但说真的,谢谢你告诉我。我认为ArrayList是一个核心类。是的,这是常见的做法和最佳方法。