zoukankan      html  css  js  c++  java
  • 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+" ");
    }
    }

    }

  • 相关阅读:
    对象和数据绑定的问题
    Qt父窗口设置为桌面
    MIS的趋势必定是围绕机器取代人手,分工越来越细(小餐厅都支持微信自助点餐,结账时就打个折,相当于省了1、2个人手,SQL发明以后,程序员的工作更多了)
    使用开源软件做项目有风险
    开源免费的C/C++网络库(c/c++ sockets library)
    Bash
    sass
    Spire.XLS
    NET Core+Code First+Docker
    实战网络性能优化
  • 原文地址:https://www.cnblogs.com/wsxcode/p/11372703.html
Copyright © 2011-2022 走看看