mating29 2009-07-30 09:26
浏览 260
已采纳

Java菜鸟问题之定义数据结构

我的leader让我定义一个数据结构!
有两个类:Package(属性:name、type、operation等等。方法包括:add,delete,以及对Field字段的添加、删除等功能方法)和Field(属性:name、type、operations等等,方法:add,delete等等)!
一个Package包含多个Field字段(也就是说组合关系!)他的要求是用类似c的struct+动态数组定义一个数据结构!
这里我不知道这个动态数组应该怎么加入!挺基础的一个设计!哪位大侠出出主意?呵呵
[b]问题补充:[/b]
add,delete的作用:在Package对Field字段进行删除或者添加!原则还是Package包含(组合关系)多个Field字段,可以删除,添加某个字段!

我的设想是:Package类的某个属性为Field对象。这样二者就联系起来。 然后在声明一个class FiledCollection , 里面维护一个私有的HashTable, 用这个类的实例来保存一个个的FiledManager实例, Packagemanager也一样, 这样程序整洁, 扩展性强。关键就是这里的FieldCollection怎样写?小弟不懂啊!

给出示例代码吧!
package cainiao;

public class Package {
private String name;
private String type;
private Field field;

public Package(String name, String type, Field field) {
    this.name = name;
    this.type = type;
    this.field = field;
}

public String getName() {
    return name;
}

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

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public Field getField() {
    return field;
}

public void setField(Field field) {
    this.field = field;
}

}

package cainiao;

public class Field {
private String name;
private String type;
private String operation;

public Field(String name, String type, String operation) {

    this.name = name;
    this.type = type;
    this.operation = operation;
}

public String getName() {
    return name;
}

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

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public String getOperation() {
    return operation;
}

public void setOperation(String operation) {
    this.operation = operation;
}

}

不知描述清楚没?呵呵

[b]问题补充:[/b]
我的设想是:[color=red]Package类的某个属性为Field对象。这样二者就联系起来。 然后在声明一个class FiledCollection , 里面维护一个私有的HashTable, 用这个类的实例来保存一个个的FiledManager实例, Packagemanager也一样, [/color]这样程序整洁, 扩展性强。关键就是这里的FieldCollection怎样写?PackageCollection咋写?我的设想正确不?
[b]问题补充:[/b]
我这个leader说的是struct+动态数组个数据结构定义!我就直接想用arraylist,这是我的个人想法,不过我就是不知道这个动态数组咋加进去?firefly兄你写出点代码出来看看!呵呵,我不知道咋写!他只是让我想。也没提示,说提示就没意思了!呵呵,哪位高人来提示一下!
[b]问题补充:[/b]
hashtable?哦,那是以前的想法!现在就是想用arraylist。
firefly你说的这个[color=red]:[color=orange]Java里面的ArrayList不仅是运行时指定长度,并且可以自增长。因此,说白了,ArrayList就是lz所说的“动态数组”。因此,lz直接使用ArrayList就可以,当然,也可以把ArrayList封装FieldCollection,然后在FieldCollection里面添加相应的add和delete方法。[/color][/color]
你能不能用代码实现啊!我不知如何下手!
[b]问题补充:[/b]
好!你就ok了!多谢二位的回答!

  • 写回答

9条回答 默认 最新

  • weixin_42516107 2009-07-30 11:29
    关注

    看看这样行不行:
    Package.java
    [code="java"]
    import java.util.ArrayList;
    import java.util.List;
    public class Package{
    String name;
    String type;
    String operation;
    List fields = new ArrayList();

    public String getName(){
    return name;
    }

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

    public String getOperation(){
    return operation;
    }

    public void setOperation( String operation ){
    this.operation = operation;
    }

    public String getType(){
    return type;
    }

    public void setType( String type ){
    this.type = type;
    }

    public void add( Field field ){
    this.add( field );
    }

    public void delete( Field field ){
    this.delete( field );
    }
    }

    [/code]

    Field.java
    [code="java"]
    public class Field{
    String name;
    String type;
    String operations;
    public String getName(){
    return name;
    }
    public void setName( String name ){
    this.name = name;
    }
    public String getOperations(){
    return operations;
    }
    public void setOperations( String operations ){
    this.operations = operations;
    }
    public String getType(){
    return type;
    }
    public void setType( String type ){
    this.type = type;
    }
    }

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法