• java学习(第四篇)数组


    一、一维数组

    1.声明,分配内存

    int[] a=new int[10]; 

    数组元素的数据类型 【】 数组名=new 类型 【数组元素个数】;

    2.初始化

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

    3.使用

    for(int x:a )
    {
    System.out.println(x);
    }

    for(int i=0;i<4;i++)
    {
    System.out.println((i+1)+":"+a[i]);
    }

    二、二维数组

    1.声明,内存分配

    int[][]a=new int[2][] ;
    int b[][];
    b=new int [2][4];
    int c[][];
    c=new int[2][];
    c[0]=new int[2];
    c[1]=new int[3];

    2.初始化

    int b[][]= {{1,2,3},{4,5,6}};

    3.遍历

    package com.test01;

    public class ArrayTest01 {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int b[][]= {{1},{2,3},{4,5,6}};
    for(int k=0;k<b.length;k++) //length取一维数组的长度
    {
    for(int c=0;c<b[k].length;c++) //length取一维数组中的元素个数
    {
    System.out.print(b[k][c]); //按元素输出
    System.out.print(" ");
    }
    System.out.println();//输出换行
    }
    }

    }

    4.填充替换数组元素

    fill()方法

    5.排序

    package com.test01;

    import java.util.Arrays;

    public class ArrayTest02 {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] a=new int[] {33,66,11,22};
    Arrays.sort(a);
    for(int c:a)
    {
    System.out.println(c); //按元素输出

    }
    }

    }

    6.复制数组

    int[] a=new int[] {33,66,11,22};
    int b[]=Arrays.copyOf(a, 2);
    for(int c=0;c<b.length;c++) //length取一维数组中的元素个数
    {
    System.out.println(b[c]); //按元素输出
    }

    int[] a=new int[] {33,66,11,22};
    int b[]=Arrays.copyOfRange(a, 2, 5);
    for(int c=0;c<b.length;c++) //length取一维数组中的元素个数
    {
    System.out.println(b[c]); //按元素输出
    }
    }

    7.查询

    int index= Arrays.binarySearch(a,0,1,8);

    在数组下标为0到1(不包括1)的范围内,查找“8”,找到返回索引,找不到返回-1;

    三、常见算法

    1.冒泡排序法

    package com.test01;

    public class PaomoSort {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int a[]= {63,4,24,1,3,15};
    PaomoSort s=new PaomoSort();
    s.sort(a);
    }
    public void sort(int array[]) {
    int t=0; //完成交换功能时的中间值
    for(int i=0;i<array.length-1;i++) //i控制外层循环,只用来判断整个大循环要几次
    {
    for(int j=0;j<5-i;j++) //j控制内层循环,每次一次大循环里面的小循环怎样进行的
    {
    if(array[j]>array[j+1])
    {
    t=array[j];
    array[j]=array[j+1];
    array[j+1]=t;
    }
    }
    }
    showArray(array);
    }
    public void showArray(int[] array) {
    // TODO Auto-generated method stub
    for(int x:array)
    {
    System.out.print(x+" ");
    }
    }

    }

    2.直接选择排序法

    public class XuanzeSort {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int a[]= {63,4,24,1,3,15};
    XuanzeSort s=new XuanzeSort();
    s.sort(a);
    }

    public void sort(int[] array) {
    // TODO Auto-generated method stub
    int max;
    for(int i=1;i<array.length;i++)
    {
    max=0; //把第一个元素作为最大值
    for(int j=1;j<=6-i;j++)
    {
    if(array[j]>array[max])
    {
    max=j;
    }

    }
    int t=array[array.length-i];
    array[array.length-i]=array[max];
    array[max]=t;
    }
    showArray(array);
    }

    public void showArray(int[] array) {
    // TODO Auto-generated method stub
    for(int x:array)
    {
    System.out.print(x+" ");
    }
    }

    }

  • 相关阅读:
    ArcMap影像纠偏
    关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案
    发布镶嵌数据集,服务端Raster Function制作
    ARCGIS 发布TIF,金字塔文件是否Server自动生成。
    验证航行数据
    解决PLSQL Developer 插入中文 乱码问题
    ArcGIS发布动态空间,并验证
    老丫么老毛桃
    使用IIS建立主机到虚拟机的端口转发
    最大子序列求和算法二三
  • 原文地址:https://www.cnblogs.com/wsxcode/p/11372703.html
Copyright © 2020-2023  润新知