Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java设计问题中的嵌套重复GRP_Java_Arrays_Generics_Nested - Fatal编程技术网

Java设计问题中的嵌套重复GRP

Java设计问题中的嵌套重复GRP,java,arrays,generics,nested,Java,Arrays,Generics,Nested,编辑:我有两个对象,必须将一个映射到另一个。问题是属性不完全匹配。我映射的对象是平面的,它有一组getter和setter。一切都很好,很容易相处。 我必须将其映射到一个具有不同结构的对象,在组(如SecAltIDGrp[]和属性(如以下)中。这是使用 ObjectToMapTo.setSecAltIDGrp(SecAltIDGrp[]) 我有几个重复的组,我必须用平面对象的getter的值来映射这些组。问题是这样的。要映射到的对象具有GRP数组[]s,该数组必须由平面对象中不同的gette

编辑:我有两个对象,必须将一个映射到另一个。问题是属性不完全匹配。我映射的对象是平面的,它有一组getter和setter。一切都很好,很容易相处。 我必须将其映射到一个具有不同结构的对象,在组(如
SecAltIDGrp[]
和属性(如以下)中。这是使用

ObjectToMapTo.setSecAltIDGrp(SecAltIDGrp[]) 
我有几个重复的组,我必须用平面对象的getter的值来映射这些组。问题是这样的。要映射到的对象具有GRP数组[]s,该数组必须由平面对象中不同的getter填充。我想不出一个干净的方法来做这件事

例如,我有一个注释数组,其结构如下

    public SecAltIDGrp[] populateComments(int NoComments)
    {

        SecAltIDGrp[] x = new SecAltIDGrp[NoComments];
        for(int i; i < NoComments; i++)
        {
            x[i].setAltID(obj.getVal);
            x[i].setAltIDSource(arg0, arg1);
        }
    }
public SecAltIDGrp[]populateComments(int-NoComments)
{
SecAltIDGrp[]x=新SecAltIDGrp[NoComments];
for(int i;i
但是,数组的每个元素都由平面对象的不同getter填充

在数组中插入if语句并将对象作为参数传入,这样做并不是件好事。这是相当可怕的编码


我应该为许多这样的团体做这件事。有些数组元素设置器本身需要数组。

请尝试使用哈希映射,这将帮助您更轻松地传递/存储对象,而不是使用数组。 如果您对hashmap键不感兴趣,那么您可以简单地使用ArrayList

HashMap将存储require组以及密钥。这里的键类似于您计划使用的数组索引

public HashMap< Integer , SecAltIDGrp > populateComments( int NoComments )
{
    HashMap< Integer , SecAltIDGrp > hmSec = new HashMap< Integer , SecAltIDGrp >();
    for(int i; i < NoComments; i++)
    {
          SecAltIDGrp x = new SecAltIDGrp();

          x.setAltID(obj.getVal);
          x.setAltIDSource(arg0, arg1);

          hmSec.put( i , x );
    }

    return hmSec;
}

public class SecAltIDGrp{
   String altId = "";
   String altIdSource = "";

   public void setAltIDSource(  String altIDSource )
   {
       this.altIdSource = altIDSource;
   }

   public void setAltID( String altId )
   {
        this.altId = altID;
   }
}
public HashMappopulateComments(int-NoComments)
{
HashMaphmSec=新HashMap();
for(int i;i
确保getter和setter还具有适当的参数,以满足泛型要求,从而防止编译期间出现任何警告

public class ObjectToMapTo
{

   private HashMap< Integer , SecAltIDGrp > hmPrivGrp = new HashMap< Integer,SecAltIDGrp >();

   public void setSecAltIDGrp(  HashMap< Integer , SecAltIDGrp > hmSecAltIDGrp)
   {
          this.hmPrivGrp = hmSecAltIDGrp;
   }
}
公共类objecttomapot
{
私有HashMaphmPrivGrp=newhashmap();
public void setSecAltIDGrp(HashMaphmSecAltIDGrp)
{
this.hmPrivGrp=hmSecAltIDGrp;
}
}
这就是设置特定组的方式。存储hashmap而不是数组。 Objecttomapot.SetSetCaltidGRP(hmSec)

您将能够遍历hashmap,并能够检索单个SecAltIDGrp

需要阅读的内容:

你的问题很令人困惑。我不明白您想做什么,所以很难帮助:(完成编辑。如果仍然不清楚,请告诉我,我将按照您的意愿详细介绍。您可以解释/显示此内容吗?“但是数组的每个元素都由平面对象的不同getter填充…”例如
x[1]。setAltID(obj.getVal)
x[2].setAltID(obj.getVal1)
x[3].setAltID(obj.getVal2)
getVal对于每个元素都是不同的方法。我无法访问任何一个对象代码。我只能嵌入它们,我必须为它们使用包装器。或者将Arraylist映射到数组。我非常确定Arraylist有一个方法。toArray()我希望:)