• java基础4.1---数据结构---常用


    一、      概述

    我的感觉是数据类型中的某些特殊数据类型组成,他是属于属性的组成之二数据类型;

    二、      分类数组为相同数据类

    1、数组

    1.1概述

    三、      型的元素组成的集合,数组元素按线性顺序排列

    注:线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素(“一个跟一个”),可以通过元素所在位置的顺序号(下标)做标识访问每一个元素(下标从0开始,最大到元素个数-1);

    1.2使用

    1.2.1数组的声明

    声明数据的语法一为:数据类型[] 数组名;

    声明数组的语法二为: 数据类型[] 数组名 = new 数据类型 [ 正整数表示数组的长度] ;

    (1)确切的数据类型:用于开辟空间大小

    (2)整体的数组名字:用于对数据的引用

    (3)不能缺少的“ [ ] ”

    注:声明数组的时候,int[] arr 与 int arr [] 两种写法均可。常用方式为int[] arr。

    1.2.2数组的初始化

    (1)int [ ] arr = { 10,23,30,-10,21 } ;

    (2)int[] arr;

    arr = new int[]{ 10,23,30,-10,21 };

    (3)int[] arr = new int[]{ 3,6,8,9 };

    (4)int[] arr = new int[10]; arr[1]=1;

    1.2.3数组访问

    (1)获取数组的长度int[] arr = new int[]{ 3,6,8,9 };

    int len = arr . length ;

    (2)通过下标访问数组元素

    int  temp = arr [ 2 ];   //获取第3个元素,即为6

    (3)遍历数组元素

    通常可选择for循环语句,循环变量作为访问数组元素的下标,即可访问数组中的每一个元素

    注意:循环的计数器的变化范围从0到数组长度– 1,可通过写成“小于长度”这样的条件来防止下标越界(超出范围)。

    (4)数组的复制

    System.arraycopy方法用于数组复制:

    public static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length)

    • src:源数组
    • srcPos:源数组中的起始位置
    • dest:目标数组
    • destPos : 目标数组中的起始位置
    • length:要复制的数组元素的数量

    Arrays.copyOf方法用于数组复制:

    类型[ ]  newArray = Arrays.copyOf ( 类型[ ]  original , int  newLength )

    • newLength小于源数组,则进行截取;(自己通过代码演示效果);
    • newLength大于源数组,则用0或 null进行填充;

    (5)数组的扩容

    int [ ]  a = { 10,20,30,40,50 } ;

    a = Arrays . copyOf (  a, a.length+1 );

    1.2.4数组的排序

    (一)概述

    所谓排序,是指将数组元素按照从小到大或从大到小的顺序重新排列

    (二)分类

    常用排序算法有:插入排序、冒泡排序、快速排序等;

    (三)冒泡排序

    它的排序原则为:比较相邻的元素,如果违反最后的顺序准则(从大到小或是从小到大),则交换。可以简化理解为:第一次找到所有元素中最大(或最小)的放在最后一个位置上,不再变动;第二次找到剩余所有元素中最大(或最小)的放在倒数第二个位置上,不再变动,以此类推,直到排序完成。在进行比较时既可以采用“下沉”的方式,也可以使用“上浮”的方式实现。

    (四)Arrays.sort方法用于数组排序

    int[ ] arr = { 49, 81, 1, 64, 77, 50, 0, 54, 77, 18 };

    Arrays.sort( arr ) ;

    向成为千里马奋斗,为伯乐打call;
  • 相关阅读:
    ios-UI-汤姆猫德游戏实现
    struts2在action中获取request、session、application,并传递数据
    centos 下 KVM虚拟机的创建、管理与迁移
    Java学习之道:Java 导出EXCEL
    __FUNCTION__, __LINE__ 有助于debug的宏定义
    unity坐标转换问题
    win10 bcdedit加入vhdx启动
    网页爬虫框架jsoup介绍
    Redis命令-HyperLogLog
    [Swift]LeetCode456. 132模式 | 132 Pattern
  • 原文地址:https://www.cnblogs.com/mhy666/p/9330547.html
Copyright © 2020-2023  润新知