Array数组的合并操作


题目

现在给出两个数组
数组arr1: “1,7,9,11,13,15,17,19”;
数组arr2:”2,4,6,8,10”
求两个数组合并之后数组newArr


一、解题之前我们需要注意

数组中的索引值的和在for循环中i作为索引值的时候

在这里,数组里面有4个数的话,length就是4  但是表示索引值就是length-1 因为,数组的索引值是从0开始,要比length少一个
for(int i =0; i<arr.length;i++){}
//之中的i是表示的索引值,也就是数组的索引值,

二、解题步骤

1.解题理解

拿到这道题之前,我们思考两个数组拼接要怎么拼接,可以去重,可以有序,我这里就用直接拼接作为练习,去重和排序可以去自己试试

1.1解题思路

1.拿到arr1数组过后,将arr1数组遍历出来,然后把第二个数组拼接到后面去
2.用if去决定他们的具体的索引值范围

1.2具体步骤

1.声明数组arr1,arr2,以及作为拼接存值的数组newArr
2.在newArr数组中,他的长度为arr1和arr2的总和
具体代码实现如下

 		int[] arr1 = {1, 7, 9, 11, 13, 15, 17, 19};
//        这里arr1的索引值为0 1 2 3 4 而length值为 5
        int[] arr2 = {2, 4, 6, 8, 10};
        int[] newArr = new int[arr1.length + arr2.length];

3.用for循环对newArr数组进行遍历,借用i作为索引值来记录

 for (int i = 0; i < arr1.length + arr2.length; i++) {

4.用if进行判断判断的范围是arr1数组所在的索引值的范围,将他遍历出来,然后赋值给newArr

 if (0 <= i && i < arr1.length) {
     newArr[i] = arr1[i];
     }

5.此时剩下的索引值就全部是arr2的索引值 就直接用 i - arr1.length去表示第二个数组进行拼接的索引值,因为前面arr1的索引值对应的值已经到了newArr中,所以我们需要用 i - arr1.length

 newArr[i] = arr2[i - arr1.length];

6.最后输出newArr[i] 就可以实现拼接的功能

三、完整代码实现

package Day05_Work;

import java.util.Arrays;

/**
 * @author:
 * @ClassName:Test3
 * @Package:com.Test3
 * @Description:
 * @CreateDate:2022年09月29日
 * @Version:1.8
 **/
public class Work_10 {

    public static void main(String[] args) {
//        这里arr1的索引值为0 1 2 3 4 5 6 7 而length值为 8
        int[] arr1 = {1, 7, 9, 11, 13, 15, 17, 19};
//        这里arr1的索引值为0 1 2 3 4 而length值为 5
        int[] arr2 = {2, 4, 6, 8, 10};
        int[] newArr = new int[arr1.length + arr2.length];
//        for(int i=0;i<13;i++)不能等于13,因为长度就是实际长度,为13 但是索引值是12,所以我们要限制到12
        System.out.println("=====按照直接合并到arr1数组后面的思路得到的结果为:=========");
        for (int i = 0; i < arr1.length + arr2.length; i++) {
//            第一种合并,直接堆在后面去
//            这里判断的是 第一个数组arr1的数组的下标索引值,当在这个范围的时候,我们进行传值
            if (0 <= i && i < arr1.length) {
                newArr[i] = arr1[i];
//                这里是进行第二个数组的索引值的判断
            } else {
                /*
                这里注意arr.length 和索引值的差别,索引值是从0开始,length有多长就是多长
                注意这里索引值的变化
                 */
                newArr[i] = arr2[i - arr1.length];
            }
            System.out.print(newArr[i] + " ");
        }
    }
}

四、 总结

这道题主要知道的是索引值的变化,然后我们才能去进行判断第一个数组arr1和第二个数组arr2的索引值取值的范围,然后用if去限制就可以实现我们的需求

以上是解题步骤。若有不明白的地方,可以私信作者。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值