163讲数组赋值机制、数组拷贝、反转、扩容缩减。
内容纲要

163讲数组赋值机制、数组拷贝、反转、扩容缩减。

file


值拷贝、引用赋值

file

jvm中的地址拷贝

file

数组的拷贝

  • 创建一个新的数组arr2[], 给它分配一个地址空间,遍历arr1[]拷贝给arr2[]

file

file

数组的翻转

file

  • 老韩方法

file

//法2
public class ArrayRerverse{
    public static void main(String[] args){
        //使用逆序赋值方式
        //arr{11, 22, 33, 44, 55, 66},
        int[] arr = {11, 22, 33, 44, 55, 66};
        int[] temp = new int[arr.length];
        for(int i = 0;i <= (arr.length - 1);i++){
            temp[i] = arr[arr.length - i - 1];
             System.out.println(temp[i] + "\t");
        }

    }
}

file

数组的扩容

file

public class ArrayAdd{
    public static void main(String[] args){
        int[] arr = {1, 2, 3};
        arr[3] = 4;
        for(int i = 0;i < arr.length;i++){
            System.out.print(arr[i] + "\t");
        }

    }
}
//这个代码有问题。蹦年arr[3] = 4; 溢出报错。

file

package main.dayone;
import java.util.Scanner;
public class ArrayAdd {
    public static void main(String[] args) {
        /*
         * 有一个数组{1,2,3,4,5},可以将该数组进行增加,提示用户是否继续增加
         * */
        Scanner myScanner = new Scanner(System.in);
        int[] array = {1,2,3,4,5};
        do{
            //初始化数组 以及数组的拷贝

            int arrayNew[] = new int[array.length + 1];
            for(int i = 0;i < array.length;i++){
                arrayNew[i] = array[i];
            }
            //增加的元素
            System.out.println("请输入增加的数:");
            int count = myScanner.nextInt();
            arrayNew[arrayNew.length - 1] = count;
            array = arrayNew;
            //回显arrayNew的数组元素
            for(int num : array){
                System.out.print("\t" + num);
            }
            //循环提示是否增加元素
            System.out.println("是否继续增加:y/n?");
            char c = myScanner.next().charAt(0);
            if(c != 'y'){
                break;
            }
        }while(true);

    }
}

数组的缩减

file

package main.dayone;

import java.util.Scanner;
public class ArrayReduce {
    public static void main(String[] args) {
        /*
         * 有一个数组{1,2,3,4,5},可以将该数组进行缩减,提示用户是否继续缩减
         * 每次缩减最后那个元素,当只剩下最后一个元素,提示不能再缩减。
         * */
        //思路分析:定义一个数组,使用for循环实现数组的迭代。
        //外层嵌套for或者while,do-while循环来判断是否缩减。
        //外层循环后面使用if语句判断用户是否继续缩减。
        int[] arr = {1,2,3,4,5,6,9,8};
        Scanner myScanner = new Scanner(System.in);
        for(;;){ //可以使用无限循环;但是要在后面定义一个if使得arr.length == 1中止循环
                    int[] arrNew = new int[arr.length - 1];
                    for(int i = 0;i < arr.length - 1;i++){
                        arrNew[i] = arr[i];
                    }
                    for(int num : arrNew){
                        System.out.print("\t" + num);
                    }
                    arr = arrNew;
                    if(arr.length == 1){
                        break;
                    }
                    System.out.println("\n" + "是否需要再缩减:y/n?");
                    char c = myScanner.next().charAt(0);
                    if(c != 'y'){
                        break;
                    }
        }
    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇