java如何取出数组指定数据6_java 从数组取出指定数量的值,相加大于等于或小于等于指定的值,取出对应的组合下标,下标不能重复...

Integer[] datas = new Integer[]{1,2,3,4,5,6,7,8,9,10,11};//目标数组

Integer min = 6;//大于等于的值

Integer max = 12;//小于等于的值

Integer count = 3;//指定数量

根据count如:3,3个数相加大于等于min小于等于max,2个数相加大于等于min小于等于max,1个数相加大于等于min小于等于max。

如果count=2,2个........,1ge.........。

返回List。

下面代码是我写死,我想知道怎样写活【count】public static void main(String[] args) {

Integer[] datas = new Integer[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};

Integer min = 6;

Integer max = 12;

Integer count = 3;

List test = test(datas, min, max, count);

for(Integer[] integers : test){

for(Integer t : integers){

System.out.print("["+t+"]");

}

System.out.println("");

}

}

public static List test(Integer[] datas, Integer min, Integer max, Integer count){

List result = new ArrayList<>();

switch (count){

case 1:

result.addAll(one(datas, min, max));

break;

case 2:

result.addAll(one(datas, min, max));

result.addAll(two(datas, min, max));

break;

case 3:

result.addAll(one(datas, min, max));

result.addAll(two(datas, min, max));

result.addAll(three(datas, min, max));

break;

}

return result;

}

public static List one(Integer[] datas, Integer min, Integer max){

List result = new ArrayList<>();

for(int i = 0,len = datas.length; i 

if(datas[i] >= min && datas[i] <= max){

result.add(new Integer[]{i});

}

}

return result;

}

输出的【下标】组合[5]

[6]

[7]

[8]

[9]

[10]

[11]

[0][4]

[0][5]

[0][6]

[0][7]

[0][8]

[0][9]

[0][10]

[1][3]

[1][4]

[1][5]

[0][1][2]

[0][1][3]

[0][1][4]

[0][1][5]

[0][1][6]

[0][1][7]

[0][1][8]

[0][2][3]

[0][2][4]

[0][2][5]

[0][2][6]

[0][2][7]

[0][3][4]

[0][3][5]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值