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 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题