操作数组、软件开发管理

操作数组

数组的复制

  1. System.arraycopy()方法用来进行数组的复制

    public class ArrayCopyDemo01 {
    public static void main(String[] args) {
    //定义一个数组
    int[] arr1 = {12,4,56,32,9,8};
    int[] arr2 = new int[arr1.length];
    //复制数据
    /* for (int i = 0; i <arr2.length ; i++) {
    arr2[i] = arr1[i];
    }*/
    //src:源数组 srcPos:源数组中的起始位置 dest:目标数组
    //destPos:目标数组中的起始位置 length:要复制的数组元素的数量
    System.arraycopy(arr1,1,arr2,0,4);
    //查看复制后的数组
    for (int i = 0; i < arr2.length ; i++) {
    System.out.print(arr2[i]+" ");// 4 56 32 9 0 0
    }
    System.out.println();
    }
    }

    这种方式 只适合于数组的复制

  2. Arrays.copyOf()方法用于数组复制、数组的”扩容”

    import java.util.Arrays;
    import java.util.Random;

    /**
    * 数组的扩容
    * 怎样查找数组的最大值
    */
    public class ArrayCopyDemo02 {
    public static void main(String[] args) {
    int[] arr1 = new int[10];
    Random random = new Random();
    //循环赋值
    for (int i = 0; i < arr1.length; i++) {
    arr1[i] = random.nextInt(100);//生成0-99
    }
    int max =arr1[0];
    System.out.println("数组中的数据为"+Arrays.toString(arr1));
    for (int i = 1; i < arr1.length; i++) {
    if (max <arr1[i]){
    max = arr1[i];
    }
    }
    System.out.println("数组的最大值是:"+max);
    //数组的扩容 第一个参数:源数组 第二个参数:目标数组的长度
    //返回的结果是新数组
    int[] arr2 = Arrays.copyOf(arr1,11);
    arr2[10] = max;
    //打印新数组
    System.out.println("新数组是"+Arrays.toString(arr2));
    }
    }

排序

常用的排序算法 插入排序 冒泡排序 快速排序等

  1. 冒泡排序

    通过不断比较相邻的元素并交换位置来将较大的元素逐步”冒泡”到数组的末尾

    import java.util.Arrays;

    /**
    * 冒泡排序 两两比较 满足条件交换位置
    */
    public class BubbleSortDemo01 {
    public static void main(String[] args) {
    int [] array = {89,50,84,57,61,20,70};
    //打印排序前的数组
    System.out.println("排序前:"+Arrays.toString(array));
    //冒泡排序
    //外层循环控制有几轮
    for (int i = 0; i <array.length-1 ; i++) {
    //内层循环控制每一轮有几次比较
    for (int j = 0; j < array.length-1-i; j++) {
    if(array[j] > array[j+1]){
    int temp = array[j];
    array[j] =array[j+1];
    array[j+1] = temp;

    }
    }
    }
    //输出数组
    System.out.println("数组中的数据为:"+ Arrays.toString(array));
    }
    }
  2. Arrays.sort()方法用于数组排序

    Arrays.sort()是java中提供的一个静态方法,用于对数组进行排序

    它使用的是优化后的快速排序

    import java.util.Arrays;

    /**
    * Arrays类的sort方法
    */
    public class ArraySortDemo {
    public static void main(String[] args) {
    int [] arr ={99,88,77,78,97,68,72,75,22,79};
    Arrays.sort(arr);
    System.out.println("排序结果:"+Arrays.toString(arr));
    }
    }

字符串与字符数组

import java.util.Arrays;

/**
* 字符串与字符数组
*/
public class StringArrayDemo {
public static void main(String[] args) {
String s1 = "Hello";
//将字符串转换成字符数组
char[] charArray1 = s1.toCharArray();
System.out.println(Arrays.toString(charArray1));

//定义一个字符数组
char[] charArray2 ={'H','e','l','l','o'};
//把字符数组构建为一个字符串对象
String s2 = new String(charArray2);
System.out.println(s2);
}
}

软件开发管理

软件生命周期

  1. 传统软件生命周期

    可行性研究报告->需求分析->软件设计->编码->软件测试->->软件维护

  2. 敏捷开发

    以用户的需求进化为核心,采用迭代\循序渐进的方法进行软件开发

  3. 敏捷开发框架

代码管理

软件开发平台