如何在Java函数中返回多个数组以及数组中实际元素的长度类似于  private int getData(byte[]a1,byte[]a2,byte[]a3)
其中a1,a2,a3都作为输出参数,由于在主调函数中已经预先分配了三个数组的空间,所以还需要返回数组的长度,该如何返回,
是在数组的第一个元素中放置长度吗,那样的话如果长度非常大,超出了byte所能表示的范围怎么办。还是说有其他的解决办法,不以输出参数的形式返回

解决方案 »

  1.   

    那就剥离数据和具体实现
    class DataStruct{
    byte[] b1;
    byte[] b2;
    byte[] b3;
    int len1;
    int len2;
    int len3;
    }
    void getData(DataStruct ds){
      //do something
      ds.len1 = ***;
      ds.len2 = ***;
      ds.len3 = ***;
    }
      

  2.   

    感觉楼主的思路有问题你可以把数组放到List里面 返回一个List 判断数组的长度用length
      

  3.   

    class   DataStruct{ 
    byte[]   b1; 
    int   len1; 
       byte[] getByte(){
        return bl;
       }
       len1 getLen(){
        return lenl;
       }
       void setByte(byte[] b){
         b1=b;
      }
      void setLen(int l){
         len1=l;
      }} 
    void   getData(DataStruct[]   ds){ 
      ds[0].getgetByte();
      ds[0].getLen();
      .......
    }
      

  4.   

    beiouwolf和zhitaorao的思路可行,我使用Java还是起步阶段,总是用C的习惯,呵呵,确实做成对象也可以
    to dext,length返回的整个数组分配的长度,不是实际元素的长度
    to zazxzx,思路有问题是指哪方面的,用byte数组不好吗,因为我现在处理的都是加密或解密的数据,我想象中只有byte 数组可以用了呀
      

  5.   

    不需要返回长度了,数组名.length即可了啊