• 分割集合list成为多个子list


            问题描述:把list里的数据,根据是否符合条件过滤,分成连续的段。比如{0,0,1,0,1,1,1,0,0,1,1}过滤掉0,分成3段 {{1},{1,1,1},{1,1}}。

    1. public class ClassMain {
    2. @Test
    3. public void test() {
    4. // srcData是测试数据
    5. int[] srcData = {};
    6. // int[] srcData = {0};
    7. // int[] srcData = {1};
    8. // int[] srcData = {1,0};
    9. // int[] srcData = {1,1};
    10. // int[] srcData = {0,1};
    11. // int[] srcData = {1,0,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,0};
    12. List> result = new ArrayList<>();
    13. result.add(new ArrayList<>());
    14. if (srcData.length <= 2){
    15. for (int i=0; i
    16. if (srcData[i] == 1){
    17. result.get(result.size()-1).add(srcData[i]);
    18. }
    19. }
    20. } else {
    21. for (int i=1;i<=srcData.length-2;i++){
    22. if (i == 1 ){
    23. if (srcData[i-1] == 1){
    24. result.get(result.size()-1).add(0,srcData[i-1]);
    25. }
    26. if (srcData[i] == 1){
    27. result.get(result.size()-1).add(srcData[i]);
    28. } else {
    29. if (result.get(result.size()-1).size()!=0){
    30. result.add(new ArrayList<>());
    31. }
    32. }
    33. }else if (i == srcData.length-2){
    34. if (srcData[i] == 1){
    35. result.get(result.size()-1).add(srcData[i]);
    36. }
    37. if (srcData[i+1] == 1){
    38. result.get(result.size()-1).add(srcData[i+1]);
    39. break;
    40. }
    41. }else{
    42. if (srcData[i] == 1){
    43. result.get(result.size()-1).add(srcData[i]);
    44. }else{
    45. if (result.get(result.size()-1).size()!=0){
    46. result.add(new ArrayList<>());
    47. }
    48. }
    49. }
    50. }
    51. }
    52. if (result.get(result.size()-1).size() == 0){
    53. result.remove(result.size()-1);
    54. }
    55. System.out.println(result);
    56. }
    57. }

  • 相关阅读:
    2022-中医基础-《阴阳 20问与答》
    自学数据库-redis
    传奇登录器打不开的四种原因
    每日学习打卡
    记一次接口分析
    在echaerts中渲染50万条数据的优化方案
    C++常用面试题20231022
    【 C++ 】红黑树
    C++基础知识要点--字符串、向量和数组
    OpenFeign的三种远程调用方式
  • 原文地址:https://blog.csdn.net/shijie_nihao/article/details/126841502