没太懂你的意思。不过对于排序我倒有个建议:
你可以在对Category[]排序的同时,也对其他的几个数组排序。你要交换Category[]中的哪两个元素,就把其他的几个数组中对应位置的元素也交换。我想这样做应该可以吧。

解决方案 »

  1.   

    namowen(寒号不已):   兄弟你没明白我的意思吗?? 写入到数据库的时候,需要首先根据Category[]来进行判断,如果Category[]里面的数组的值相同,就生成一张单(写入到数据表里,生成一个No),如果不同的也生成一张单。但是相同的一定要生成同一个No的单。
      我More具体点,如果Category[]里面的数据为{"A","B","C","A"} 
    那么写入到数据表(假设为Purchase Order),那么它应该是写三张PO到数据表里面去,因为,Category的值有3个不同的数据,如果是相同的就写入到一个PO No,比若,如果Category 是A,对应有两个记录.写入到PO No 为001, then B ===> PO No 002, then C ====>PO No 003.就是这样的,明白了吗? 多谢提供想法,多谢!
    至于排序, 你可以写一点代码给我参考一下吗?
      

  2.   

    class TempTable implements Comparable {
       public int caterogy ,name, qty, unitPrice;
       public TempTable( int a ,int b, int c, int d) {
           caterogy = a;
           name = b;
           qty = c;
           unitPrice = d;
       }
       public int compareTo(Object o ) {
           if( o == this)
             return 0;
           return caterogy - ((TempTable)o).caterogy;
       }
    }
    TempTable [] table = new TempTable [Caterogy.length];
    for(int i=0;i<table .length;i++) {
      table[i] = new TempTable (Caterogy[i],Name[i],Qty[i],UnitPrice[i]);
    }
    Arrays.sort(table );
    for(int i=0;i<table .length;i++) {
      Caterogy[i] = table[i].caterogy;
      Name[i] = table[i].name;
      Qty[i] = table[i].qty;
      UnitPrice[i] = table[i].unitPrice;
    }这是按照你的思路写的排序程序,不过我觉得你的这种情况还是用Hash比较好。
      

  3.   

    farawayzheng_necas(遥远) :
    谢谢你提供的程序和思路,但是用Hash Table 怎么用啊,hashtable是按照一个关键字来查询的,而我的数组里面的数据可能重复。你觉得应该怎么解决好点!多谢你了,很感谢!
      

  4.   

    Hashtable用Caterogy中的值做key, 用表No做value;
    用for遍历  Caterogy, 如果在Hashtable中有这项,就把Name[i] 等 加入这张表中,如果没有则新建一张表,并把表No加到Hashtable中。不是很难,不过我可能没说明白。
      

  5.   

    farawayzheng_necas(遥远):
        Category[]可能是重复的。做KEY好象不太合适吧!
    这样处理起来也不太方便,有其他好方法吗??
      

  6.   

    把Caterogy[],Name[],Qty[],UnitPrice[]一一对应起来然后一条一条的插入Vector(Caterogy[i]+Name[i]+Qty[i]+UnitPrice[i])
      

  7.   

    1.
    class NQU{
    String Name;
    int Qty;
    double UnitPrice;
    }2.
    new a Hashtable ht
    for each item in Category
    if(not item in ht){
    ht.put(item,new vector())
    }
    o = new NQU(Name[i],Qty[i],UnitPrice[i]);
    ((Vector)ht.getValue(item)).add(o);
    loop3.
    for each key in ht
    insert master table
    v = ht.getKeyValue(key)
    for each item in v
    inert slave table 
    loop
    loop不过这样似乎效率不高,大家继续