数组遍历 学习笔记

文章探讨了数组中下标的意义,如获取信息、元素计数和配对关系。还涉及了数组遍历的不同方式,包括正序、逆序以及特定模式的遍历。此外,提到了动态规划中的回文子串判断和数组折叠概念,展示了多种遍历和操作数组的编程实例。
摘要由CSDN通过智能技术生成

基础逻辑

[Q&A] 下标为5可以获取到什么信息?

1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
          ·
1・下标为5
2・当前为第6号元素
3・前面有5个元素
4・后面有4个元素(10-65・倒数第5

[Q&A] 下标4到下标7有几个元素?

1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9

0-1-2-3-4
0-1-2-3-4-5-6-7

1・下标为7比下标为43 (7-4)个元素
2・下标为4到下标为74 (7-4+1)个元素
3subString(3,7).length() 长度为7-3

[Q&A] 数组折叠对应下标相加为 length-1 ( iarr.length-1-i 是前后遥相呼应的两个位置)

# 数组折叠 对应下标相加为 length-1
# i 和 arr.length-1-i 是前后遥相呼应的两个位置

a  b  c  b  a  		a  b  c  c  b  a
0  1  2  3  4  		0  1  2  3  4  5
0+4=4				0+5=5
1+3=4				1+4=5
2+2=4				2+3=5

[Q&A] 区间[0,arr.length/2) 为数组左一半

区间[0,arr.length/2) 为数组左一半
abcba  ☞ 长度为奇数时 arr.length()/25/2=2[0 1]3 4
abccba ☞ 长度为偶数时 arr.length()/26/2=3[0 1 2]4 5

使用场景
NC17 最长回文子串
Java 业务原子级常用方法 ☞ 判断子串是不是回文子串


数组遍历

【一维数据】遍历 X2

int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

# 正序
for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}
1 2 3 4 5 6 7 8 9 

# 逆序
for (int i = arr.length - 1; i >= 0; i--) {
    System.out.print(arr[i] + " ");
}
9 8 7 6 5 4 3 2 1 

【数组遍历】这个行为被重复执行 X4

int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

// 控制[数组遍历]这个行为被重复执行次数--正序逆序不重要
for (int i = 0; i < arr.length; i++) {
// for (int i = arr.length - 1; i >= 0; i--) {
    
    // 数组正序遍历的行为
    for (int j = 0; j < arr.length; j++) {
        System.out.print(arr[j] + "  ");
    }
    
    System.out.print("←分水岭→  ");
    
    // 数组逆序遍历的行为
    for (int k = arr.length - 1; k >= 0; k--) {
        System.out.print(arr[k] + "  ");
    }
    System.out.println();
}

1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  

1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1

【数组元素】被重复执行 X4

int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

// 数组元素排队轮回的顺序--正序 or 逆序
for (int i = 0; i < arr.length; i++) {
// for (int i = arr.length - 1; i >= 0; i--) {

    // 控制[数组元素]被重复执行次数--正序逆序不重要
    for (int j = 0; j < arr.length; j++) {
        System.out.print(arr[i] + "  ");
    }
    
    System.out.print("←分水岭→  ");
    
    // 控制[数组元素]被重复执行次数--正序逆序不重要
    for (int k = arr.length - 1; k >= 0; k--) {
        System.out.print(arr[i] + "  ");
    }
    System.out.println();
}

1  1  1  1  1  1  1  1  1  ←分水岭→  1  1  1  1  1  1  1  1  1
2  2  2  2  2  2  2  2  2  ←分水岭→  2  2  2  2  2  2  2  2  2
3  3  3  3  3  3  3  3  3  ←分水岭→  3  3  3  3  3  3  3  3  3
4  4  4  4  4  4  4  4  4  ←分水岭→  4  4  4  4  4  4  4  4  4
5  5  5  5  5  5  5  5  5  ←分水岭→  5  5  5  5  5  5  5  5  5
6  6  6  6  6  6  6  6  6  ←分水岭→  6  6  6  6  6  6  6  6  6
7  7  7  7  7  7  7  7  7  ←分水岭→  7  7  7  7  7  7  7  7  7
8  8  8  8  8  8  8  8  8  ←分水岭→  8  8  8  8  8  8  8  8  8
9  9  9  9  9  9  9  9  9  ←分水岭→  9  9  9  9  9  9  9  9  9

9  9  9  9  9  9  9  9  9  ←分水岭→  9  9  9  9  9  9  9  9  9
8  8  8  8  8  8  8  8  8  ←分水岭→  8  8  8  8  8  8  8  8  8
7  7  7  7  7  7  7  7  7  ←分水岭→  7  7  7  7  7  7  7  7  7
6  6  6  6  6  6  6  6  6  ←分水岭→  6  6  6  6  6  6  6  6  6
5  5  5  5  5  5  5  5  5  ←分水岭→  5  5  5  5  5  5  5  5  5
4  4  4  4  4  4  4  4  4  ←分水岭→  4  4  4  4  4  4  4  4  4
3  3  3  3  3  3  3  3  3  ←分水岭→  3  3  3  3  3  3  3  3  3
2  2  2  2  2  2  2  2  2  ←分水岭→  2  2  2  2  2  2  2  2  2
1  1  1  1  1  1  1  1  1  ←分水岭→  1  1  1  1  1  1  1  1  1

【外左内左回放的思想】X8 ☞ 动态规划里总结出来的

int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

for (int i = 0; i < arr.length; i++) {
    // 从0回放到i
    // for (int j = 0; j <= i; j++) {
    
    // 从i回退到0
    // for (int j = i; j >= 0; j--) {
    
    // 从i快进到arr.length-1
    // for (int j = i; j < arr.length; j++) {
    
    // 从arr.length-1回退到i
    for (int j = arr.length - 1; j >= i; j--) {
        System.out.print(arr[j] + "  ");
    }
    System.out.println();
}

1                          ←分水岭→  1                          ←分水岭→  1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1
1  2                       ←分水岭→  2  1                       ←分水岭→  2  3  4  5  6  7  8  9     ←分水岭→  9  8  7  6  5  4  3  2   
1  2  3                    ←分水岭→  3  2  1                    ←分水岭→  3  4  5  6  7  8  9        ←分水岭→  9  8  7  6  5  4  3      
1  2  3  4                 ←分水岭→  4  3  2  1                 ←分水岭→  4  5  6  7  8  9           ←分水岭→  9  8  7  6  5  4         
1  2  3  4  5              ←分水岭→  5  4  3  2  1              ←分水岭→  5  6  7  8  9              ←分水岭→  9  8  7  6  5            
1  2  3  4  5  6           ←分水岭→  6  5  4  3  2  1           ←分水岭→  6  7  8  9                 ←分水岭→  9  8  7  6               
1  2  3  4  5  6  7        ←分水岭→  7  6  5  4  3  2  1        ←分水岭→  7  8  9                    ←分水岭→  9  8  7                  
1  2  3  4  5  6  7  8     ←分水岭→  8  7  6  5  4  3  2  1     ←分水岭→  8  9                       ←分水岭→  9  8                     
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  ←分水岭→  9                          ←分水岭→  9                                              

----------------------------------------------------------------------------------------------------
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = 0; i < arr.length; i++) {
    // 位置i处元素遍历i次,正序,逆序无所谓
    // for (int j = 0; j <= i; j++) {
    // for (int j = i; j >= 0; j--) {
    
    // 位置i处元素遍历arr.length-i次,正序逆序无所谓
    // for (int j = i; j < arr.length; j++) {
    for (int j = arr.length - 1; j >= i; j--) {
        System.out.print(arr[i] + "  ");
    }
    System.out.println();
}

1                          ←分水岭→  1                          ←分水岭→  1  1  1  1  1  1  1  1  1  ←分水岭→  1  1  1  1  1  1  1  1  1
2  2                       ←分水岭→  2  2                       ←分水岭→  2  2  2  2  2  2  2  2     ←分水岭→  2  2  2  2  2  2  2  2   
3  3  3                    ←分水岭→  3  3  3                    ←分水岭→  3  3  3  3  3  3  3        ←分水岭→  3  3  3  3  3  3  3      
4  4  4  4                 ←分水岭→  4  4  4  4                 ←分水岭→  4  4  4  4  4  4           ←分水岭→  4  4  4  4  4  4         
5  5  5  5  5              ←分水岭→  5  5  5  5  5              ←分水岭→  5  5  5  5  5              ←分水岭→  5  5  5  5  5            
6  6  6  6  6  6           ←分水岭→  6  6  6  6  6  6           ←分水岭→  6  6  6  6                 ←分水岭→  6  6  6  6               
7  7  7  7  7  7  7        ←分水岭→  7  7  7  7  7  7  7        ←分水岭→  7  7  7                    ←分水岭→  7  7  7                  
8  8  8  8  8  8  8  8     ←分水岭→  8  8  8  8  8  8  8  8     ←分水岭→  8  8                       ←分水岭→  8  8                     
9  9  9  9  9  9  9  9  9  ←分水岭→  9  9  9  9  9  9  9  9  9  ←分水岭→  9                          ←分水岭→  9                        

【外左内右回放的思想】X8

int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

for (int i = 0; i < arr.length; i++) {
    // 逐级降低目标
    for (int j = 0; j <= arr.length - 1 - i; j++) {
    // 逐级降低目标 ☞ 基于右边界的思想
    // for (int j = 0; j < arr.length - i; j++) {
        str += arr[j] + "  ";
    }
    
    // 从arr.length-1回退到i (相同功能)
    for (int j = arr.length - 1 - i; j >= 0; j--) {
        str += arr[j] + "  ";
    }
    
    // 降低成本,观察是否还能达到预期目标
    for (int j = arr.length - 1 - i; j < arr.length; j++) {
        str += arr[j] + "  ";
    }
    
    // 资本对品质的反向蚕食
    for (int j = arr.length - 1; j >= arr.length - 1 - i; j--) {
        str += arr[j] + "  ";
    }
}
    
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  ←分水岭→  9                          ←分水岭→  9                         
1  2  3  4  5  6  7  8     ←分水岭→  8  7  6  5  4  3  2  1     ←分水岭→  8  9                       ←分水岭→  9  8                      
1  2  3  4  5  6  7        ←分水岭→  7  6  5  4  3  2  1        ←分水岭→  7  8  9                    ←分水岭→  9  8  7                   
1  2  3  4  5  6           ←分水岭→  6  5  4  3  2  1           ←分水岭→  6  7  8  9                 ←分水岭→  9  8  7  6                
1  2  3  4  5              ←分水岭→  5  4  3  2  1              ←分水岭→  5  6  7  8  9              ←分水岭→  9  8  7  6  5             
1  2  3  4                 ←分水岭→  4  3  2  1                 ←分水岭→  4  5  6  7  8  9           ←分水岭→  9  8  7  6  5  4          
1  2  3                    ←分水岭→  3  2  1                    ←分水岭→  3  4  5  6  7  8  9        ←分水岭→  9  8  7  6  5  4  3       
1  2                       ←分水岭→  2  1                       ←分水岭→  2  3  4  5  6  7  8  9     ←分水岭→  9  8  7  6  5  4  3  2    
1                          ←分水岭→  1                          ←分水岭→  1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1 


----------------------------------------------------------------------------------------------------
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

for (int i = 0; i < arr.length; i++) {
    // 元素遍历其[下标的对折位置的下标]的次数,正序逆序无所谓
    for (int j = 0; j <= arr.length - 1 - i; j++) {
        str += arr[i] + "  ";
    }
    // 元素遍历其[下标的对折位置的下标]的次数,正序逆序无所谓
    for (int j = arr.length - 1 - i; j >= 0; j--) {
        str += arr[i] + "  ";
    }
    // 元素遍历其下标的次数,正序逆序无所谓
    for (int j = arr.length - 1 - i; j < arr.length; j++) {
        str += arr[i] + "  ";
    }
    // 元素遍历其下标的次数,正序逆序无所谓
    for (int j = arr.length - 1; j >= arr.length - 1 - i; j--) {
        str += arr[i] + "  ";
    }
}

1  1  1  1  1  1  1  1  1  ←分水岭→  1  1  1  1  1  1  1  1  1  ←分水岭→  1                          ←分水岭→  1                        
2  2  2  2  2  2  2  2     ←分水岭→  2  2  2  2  2  2  2  2     ←分水岭→  2  2                       ←分水岭→  2  2                     
3  3  3  3  3  3  3        ←分水岭→  3  3  3  3  3  3  3        ←分水岭→  3  3  3                    ←分水岭→  3  3  3                  
4  4  4  4  4  4           ←分水岭→  4  4  4  4  4  4           ←分水岭→  4  4  4  4                 ←分水岭→  4  4  4  4               
5  5  5  5  5              ←分水岭→  5  5  5  5  5              ←分水岭→  5  5  5  5  5              ←分水岭→  5  5  5  5  5            
6  6  6  6                 ←分水岭→  6  6  6  6                 ←分水岭→  6  6  6  6  6  6           ←分水岭→  6  6  6  6  6  6         
7  7  7                    ←分水岭→  7  7  7                    ←分水岭→  7  7  7  7  7  7  7        ←分水岭→  7  7  7  7  7  7  7      
8  8                       ←分水岭→  8  8                       ←分水岭→  8  8  8  8  8  8  8  8     ←分水岭→  8  8  8  8  8  8  8  8   
9                          ←分水岭→  9                          ←分水岭→  9  9  9  9  9  9  9  9  9  ←分水岭→  9  9  9  9  9  9  9  9  9

【外右内左回放的思想】X8

int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

for (int i = arr.length - 1; i >= 0; i--) {
    for (int j = 0; j <= arr.length - 1 - i; j++) {
        str += arr[j] + "  ";
    }
    for (int j = arr.length - 1 - i; j >= 0; j--) {
        str += arr[j] + "  ";
    }
    for (int j = arr.length - 1 - i; j < arr.length; j++) {
        str += arr[j] + "  ";
    }
    for (int j = arr.length - 1; j >= arr.length - 1 - i; j--) {
        str += arr[j] + "  ";
    }
}


1                          ←分水岭→  1                          ←分水岭→  1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  
1  2                       ←分水岭→  2  1                       ←分水岭→  2  3  4  5  6  7  8  9     ←分水岭→  9  8  7  6  5  4  3  2     
1  2  3                    ←分水岭→  3  2  1                    ←分水岭→  3  4  5  6  7  8  9        ←分水岭→  9  8  7  6  5  4  3        
1  2  3  4                 ←分水岭→  4  3  2  1                 ←分水岭→  4  5  6  7  8  9           ←分水岭→  9  8  7  6  5  4           
1  2  3  4  5              ←分水岭→  5  4  3  2  1              ←分水岭→  5  6  7  8  9              ←分水岭→  9  8  7  6  5              
1  2  3  4  5  6           ←分水岭→  6  5  4  3  2  1           ←分水岭→  6  7  8  9                 ←分水岭→  9  8  7  6                 
1  2  3  4  5  6  7        ←分水岭→  7  6  5  4  3  2  1        ←分水岭→  7  8  9                    ←分水岭→  9  8  7                    
1  2  3  4  5  6  7  8     ←分水岭→  8  7  6  5  4  3  2  1     ←分水岭→  8  9                       ←分水岭→  9  8                       
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  ←分水岭→  9                          ←分水岭→  9                          

----------------------------------------------------------------------------------------------------
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

for (int i = arr.length - 1; i >= 0; i--) {
    // 元素遍历其[下标的对折位置的下标]的次数,正序逆序无所谓
    for (int j = 0; j <= arr.length - 1 - i; j++) {
        str += arr[i] + "  ";
    }
    // 元素遍历其[下标的对折位置的下标]的次数,正序逆序无所谓
    for (int j = arr.length - 1 - i; j >= 0; j--) {
        str += arr[i] + "  ";
    }
    // 元素遍历其下标的次数,正序逆序无所谓
    for (int j = arr.length - 1 - i; j < arr.length; j++) {
        str += arr[i] + "  ";
    }
    // 元素遍历其下标的次数,正序逆序无所谓
    for (int j = arr.length - 1; j >= arr.length - 1 - i; j--) {
        str += arr[i] + "  ";
    }
}


9                          ←分水岭→  9                          ←分水岭→  9  9  9  9  9  9  9  9  9  ←分水岭→  9  9  9  9  9  9  9  9  9
8  8                       ←分水岭→  8  8                       ←分水岭→  8  8  8  8  8  8  8  8     ←分水岭→  8  8  8  8  8  8  8  8   
7  7  7                    ←分水岭→  7  7  7                    ←分水岭→  7  7  7  7  7  7  7        ←分水岭→  7  7  7  7  7  7  7      
6  6  6  6                 ←分水岭→  6  6  6  6                 ←分水岭→  6  6  6  6  6  6           ←分水岭→  6  6  6  6  6  6         
5  5  5  5  5              ←分水岭→  5  5  5  5  5              ←分水岭→  5  5  5  5  5              ←分水岭→  5  5  5  5  5            
4  4  4  4  4  4           ←分水岭→  4  4  4  4  4  4           ←分水岭→  4  4  4  4                 ←分水岭→  4  4  4  4               
3  3  3  3  3  3  3        ←分水岭→  3  3  3  3  3  3  3        ←分水岭→  3  3  3                    ←分水岭→  3  3  3                  
2  2  2  2  2  2  2  2     ←分水岭→  2  2  2  2  2  2  2  2     ←分水岭→  2  2                       ←分水岭→  2  2                     
1  1  1  1  1  1  1  1  1  ←分水岭→  1  1  1  1  1  1  1  1  1  ←分水岭→  1                          ←分水岭→  1                        

【外右内右回放的思想】X8

int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = arr.length - 1; i >= 0; i--) {
    for (int j = 0; j <= i; j++) {
        str += arr[j] + "  ";
    }
    for (int j = i; j >= 0; j--) {
        str += arr[j] + "  ";
    }
    for (int j = i; j < arr.length; j++) {
        str += arr[j] + "  ";
    }
    for (int j = arr.length - 1; j >= i; j--) {
        str += arr[j] + "  ";
    }
}
1  2  3  4  5  6  7  8  9  ←分水岭→  9  8  7  6  5  4  3  2  1  9                          9                          
1  2  3  4  5  6  7  8     ←分水岭→  8  7  6  5  4  3  2  1     8  9                       9  8                       
1  2  3  4  5  6  7        ←分水岭→  7  6  5  4  3  2  1        7  8  9                    9  8  7                    
1  2  3  4  5  6           ←分水岭→  6  5  4  3  2  1           6  7  8  9                 9  8  7  6                 
1  2  3  4  5              ←分水岭→  5  4  3  2  1              5  6  7  8  9              9  8  7  6  5              
1  2  3  4                 ←分水岭→  4  3  2  1                 4  5  6  7  8  9           9  8  7  6  5  4           
1  2  3                    ←分水岭→  3  2  1                    3  4  5  6  7  8  9        9  8  7  6  5  4  3        
1  2                       ←分水岭→  2  1                       2  3  4  5  6  7  8  9     9  8  7  6  5  4  3  2     
1                          ←分水岭→  1                          1  2  3  4  5  6  7  8  9  9  8  7  6  5  4  3  2  1  

----------------------------------------------------------------------------------------------------
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = arr.length - 1; i >= 0; i--) {
    for (int j = 0; j <= i; j++) {
        str += arr[i] + "  ";
    }
    for (int j = i; j >= 0; j--) {
        str += arr[i] + "  ";
    }
    for (int j = i; j < arr.length; j++) {
        str += arr[i] + "  ";
    }
    for (int j = arr.length - 1; j >= i; j--) {
        str += arr[i] + "  ";
    }
}
9  9  9  9  9  9  9  9  9  ←分水岭→  9  9  9  9  9  9  9  9  9  9                          9                          
8  8  8  8  8  8  8  8     ←分水岭→  8  8  8  8  8  8  8  8     8  8                       8  8                       
7  7  7  7  7  7  7        ←分水岭→  7  7  7  7  7  7  7        7  7  7                    7  7  7                    
6  6  6  6  6  6           ←分水岭→  6  6  6  6  6  6           6  6  6  6                 6  6  6  6                 
5  5  5  5  5              ←分水岭→  5  5  5  5  5              5  5  5  5  5              5  5  5  5  5              
4  4  4  4                 ←分水岭→  4  4  4  4                 4  4  4  4  4  4           4  4  4  4  4  4           
3  3  3                    ←分水岭→  3  3  3                    3  3  3  3  3  3  3        3  3  3  3  3  3  3        
2  2                       ←分水岭→  2  2                       2  2  2  2  2  2  2  2     2  2  2  2  2  2  2  2     
1                          ←分水岭→  1                          1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  

for (int i = 0; i <= arr.length - 7; i++)

int[] arr 

// 考勤迟到
if (arr.length <= 7) {
    return Arrays.stream(arr).sum() > 3;
} else {
    for (int i = 0; i <= arr.length - 7; i++) {
        int[] ints = Arrays.copyOfRange(arr, i, i + 7); // 任意7天
        int sum = Arrays.stream(ints).sum();
        if (sum > 3) {
            return true; // 存在有问题数据就直接终止判断并返回
        }
    }
}

// 滑动窗口
for (int i = 0; i <= nums.length - k; i++) {
    int[] ints = Arrays.copyOfRange(nums, i, i + k);
    Arrays.stream(ints).max().ifPresent(res::add);
}

for (int i = 0; i < str.length(); )

// 字符串8位一截取
List<String> res = new ArrayList<>();
for (int i = 0; i < str.length(); ) {
    if (i + 8 < str.length()) {
        String substring = str.substring(i, i + 8);
        res.add(substring);
        i = i + 8;
    } else {
        String substring = str.substring(i);
        res.add(substring);
        i = i + 8;
    }
}

数组 【范围截取】

int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr.length; j++) {
        str += arr[i] + "  ";
    }
}
for (int i = 1; i < arr.length; i++) {
    String str1 = "";
    for (int j = 1; j < arr.length; j++) {
        str1 += arr[i] + "  ";
    }
}
for (int i = arr.length - 1; i < arr.length; i++) {
    for (int j = arr.length - 1; j < arr.length; j++) {
        str1 += arr[j] + "  ";
    }
}

1  1  1  1  1  1  1  1  1
2  2  2  2  2  2  2  2  2
3  3  3  3  3  3  3  3  3
4  4  4  4  4  4  4  4  4
5  5  5  5  5  5  5  5  5
6  6  6  6  6  6  6  6  6
7  7  7  7  7  7  7  7  7
8  8  8  8  8  8  8  8  8
9  9  9  9  9  9  9  9  9

   2  2  2  2  2  2  2  2
   3  3  3  3  3  3  3  3
   4  4  4  4  4  4  4  4
   5  5  5  5  5  5  5  5
   6  6  6  6  6  6  6  6
   7  7  7  7  7  7  7  7
   8  8  8  8  8  8  8  8
   9  9  9  9  9  9  9  9
   
                        9

参考

数组遍历 ☞ 第1波学习总结
数组遍历 ☞ 第2波学习总结
数组遍历 ☞ 第3波学习总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值