数组中有3中类型的对象a,b,c,如何遍历数组得到只有a类型,b类型,c类型和2种类型,3种类型的6种情况?谢谢

解决方案 »

  1.   

    hehe ,不好意思啊
    只存在a 为一种情况
    . .....b...........
    ......c...........
    存在a和b为一种情况
    存在a和c为一种情况
    存在c和b为一种情况
    3种类型都存在为第6种情况
      有没有比较简单的算法,谢过
      

  2.   

    比较笨的方法
    设定3个标识位
    flag[3]
    遍历数组
    有符合的条件就把标识位改变
    然后判断标识位的状态就知道事那种情况了
      

  3.   

    从1到 2^N - 1遍历就可以了char[] array = new char[]{'a','b','c','d'};
    int max = (int) Math.pow(2, array.length);
    for(int i = 1; i < max; i++) {
    for(int j = 0; j < array.length; j++) {
    if( (i & (1 << j)) != 0)
    System.out.print(array[j] + ",");
    }
    System.out.println();
    }
      

  4.   

    同意 sunxutx(孤云挂月) 的想法,不过我觉得不需要用一个数组,而是采用一个整数,然后采用位运算,最后直接返回这个整数。