一、静态数组要分配内存空间

语法:type[] ary = new type[number];

int[] ary; 声明数组是什么类型;内存空间为5的数组;

ary=new int[5];

用法:

public class XueArray {

// 执行程序

public static void main(String[] args) {

int[] arrInt = new int[5]; // 数组长度为5

byte[] arrByte = new byte[5];

String[] arrString = new String[5];

double[] arrDouble = new double[5];

System.out.println("arrDouble[0] = " + arrDouble[0]); // 0.0

System.out.println("arrInt[0] = " + arrInt[0]); // 0

System.out.println("arrString[0] = " + arrString[0]); // null

System.out.println("arrByte[0] = " + arrByte[0]); // 0

}

}

第一种

int[] ary ={1,2,3,4} ;

// Arrays.toString(ary) 转化可打印的数组

System.out.println(Arrays.toString(ary)); // 输出 [1,2,3,4]

第二种

int[] ary = new int[]{1,2,3,4};

System.out.println(Arrays.toString(ary)); // 输出 [1,2,3,4]

三、创建一个二维数组

int[][] erAry = new int[][]{{1, 2}, {3, 4}}; // [[1,2],[3,4]]

四、数组常见操作方法(Arrays)

控制台打印一维数组(Arrays.toString(ary))

int[] ary={1,2,3,4};

System.out.println("ary = " + Arrays.toString(ary));

数组拷贝:(System.arraycopy(ary1,index,ary2,index,length))

System.arraycopy() 新数组和旧数组地址不一样

ary2=ary1 新数组和就数组地址一样

{

int[] ary = {1, 2, 3, 4};

int[] ary2 = new int[4];

int[] ary3 = new int[4];

ary3 = ary; // ary3根arr是同一个地址

System.arraycopy(ary, 0, ary2, 0, 4);

ary[0] = 10;

System.out.println("ary2 = " + Arrays.toString(ary2)); // [1,2,3,4]

System.out.println("ary3 = " + Arrays.toString(ary3)); // [10,2,3,4]

System.out.println("ary = " + Arrays.toString(ary)); // [10,2,3,4]

}

遍历数组

for循环

forEach

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

for (int i = 0; i < ary.length; i++) {

System.out.println("item = " + ary[i]);

}

for (int item : ary) {

System.out.println("item = " + item);

}

替换元素(Arrays.fill())

替换所有元素

public static void main(String[] args) {

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

Arrays.fill(ary,9);

System.out.println("aryAry = " + Arrays.toString(ary)); // [9,9,9,9,9,9]

}

替换单独元素

public static void main(String[] args) {

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

Arrays.fill(ary,2,3,9);

System.out.println("aryAry = " + Arrays.toString(ary)); // [1,2,9,4,5,6]

}

数组排序(Arrays.sort(ary))

字符串是按字典来排序;

数字是按从小到大排序

复制数组 (Arrays.copyOf(ary,length))

复制新的数组不是同一个地址

// 执行程序

public static void main(String[] args) {

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

int[] ary1 = Arrays.copyOf(ary, 3);

ary[0]=100;

System.out.println("ary1 = " +Arrays.toString(ary1) ); // [1,2,3]

}

五、基本算法

冒泡算法

原理:冒泡排序也是一种交换排序算法。冒泡排序的过程,是把数组元素中较小的看作是“较 轻”的,对它进行“上浮”操作。从底部开始,反复地对数组进行“上浮”操作 n 次,最后 得到有序数组。

public void sort(int[] ary) {

int index;

for (int i = 1; i < ary.length; i++) {

// 先拿出第一项出来

index = 0;

// 判断是否最大值

for (int j = 1; j <= ary.length - i; j++) {

// 如果匹配到最大值把index索引替换了

if (ary[j] > ary[index]) {

index = j;

}

}

int temp = ary[ary.length - i]; // 拿出来最后一项存起来

ary[ary.length - i] = ary[index]; // 最后一项赋值最大的的值

ary[index] = temp; // 最大项的位置给最后一项

}

System.out.println("ary = " + Arrays.toString(ary));

}

数组反转

思路:最后一个和第一个换位置,第二个和倒数第二个,所以循坏长度为总长度的一半

public void reverse(int[] ary) {

int len = ary.length;

for (int i = 0; i < len / 2; i++) {

int temp = ary[i]; // 第一项存起来

ary[i] = ary[len - 1 - i]; // 第一项等于最后一项

ary[len - 1 - i] = temp; // 最后一项等于第一项

}

}

java 静态数组_java(四)创建静态数组相关推荐

  1. java正确定义一维数组_java一维数组定义,创建一维数组详解

    前面给大家介绍了一下什么是java数组,下面要接着给大家介绍的就是java一维数组定的定义以及创建一维数组方面的知识. 数组当中的每个元素都只带有一个下标的时候,这样的数组就是一维数组,一维数组实质上 ...

  2. java input 数组_Java基础之:数组

    Java基础之:数组 一组相同数据类型的数据,我们即称之为 数组,数组也是一种数据类型. 需要注意的是 , 数组和String 字符串 相同,也是引用类型的. 数组的初始化 方式一:动态初始化 四种格 ...

  3. java大括号定义数组_Java基础语法_数组

    数组的概念 数组的概念:是一种容器,可以同时存放多个数据值 数组的特点: 1.数组是一种引用数据类型 2.数组当中的多个数据,类型必须统一 3.数组的长幅在程序运行期间不可改变 数组的定义格式 数组的 ...

  4. java scanner输入数组_java基础- scanner/方法/数组

    1.用户交互scanner Next() public class demo1 { public static void main(String[] args) { //创建一个scanner对象 S ...

  5. java工厂模式静态工厂_Java设计模式之静态工厂模式详解

    本文实例讲述了Java设计模式之静态工厂模式.分享给大家供大家参考,具体如下: 静态工厂模式(static factory)也叫简单工厂模式. 涉及到3个角色:工厂类角色,抽象产品类角色和具体产品类角 ...

  6. Java学习笔记(四):数组操作

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://mp.csdn.net/mdeditor/100728414 目录 ...

  7. java怎么定义一维数组_Java定义一个一维数组有哪几种方法

    展开全部 首先: 一维62616964757a686964616fe59b9ee7ad9431333366306432数组的声明 ; 代码如下int[] ary1; //Java推荐的数组声明方式 i ...

  8. java反转数组_Java中如何将数组反转?Java数组反转的2种方法(代码示例)

    数组操作Java数组如何反转输出?下面本篇文章就给大家介绍2种在java中实现数组反转的简单方法.有一定的参考价值,希望对大家有所帮助.[视频教程推荐:java教程] 方法一:使用循环,交换数组中元素 ...

  9. arrays中copyof复制两个数组_Java教程分享之数组知识梳理

    Java是一门面向对象编程语言,具有简单易用.功能强大的特征.数组是同类型数据的有序集合,在Java中是引用数据类型,引用数据类型值都存储在堆中.有很多新手初学Java数组觉得难度大,接下来就给大家简 ...

最新文章

  1. 《中国新说唱》怎么就把小众文化唱凉了
  2. Mac下批量删除.svn文件
  3. 使用eclipse svn塔建(配置)时的一点点心得
  4. java---sychronized的深入理解
  5. android实现通知栏搜索功能,actionBar+SearchView实现搜索功能
  6. Android下pm命令详解
  7. Hdoj 1064 Financial Management
  8. java socket 组包_关于socket 分包和组包
  9. animation停留_animation控制动画暂停/播放
  10. IoU,GIoU,DIoU、CIoU详解
  11. jquery delay_jQuery delay()函数
  12. Android系统充电指示灯无响应
  13. 使用Kronecker积计算手眼标定矩阵AX=XB
  14. Visio中输入特殊符号和带下标的符号
  15. HTML5吃豆豆游戏开发实战(一)使用Canvas绘制游戏主角
  16. linux下僵尸进程(<defunct>进程)的产生与避免
  17. 织梦CMS如何搬家并成功连接数据库
  18. 计算并输出最高分及其学生学号
  19. 如何让中文转换成其拼音首字母大写
  20. MySQL数据库(操作命令)

热门文章

  1. Mac技巧:如何在拥挤的桌面上拖动文件
  2. php日历天气预报下载安装手机桌面_日历天气预报下载安装
  3. 无线射频设计方向简略
  4. php获取主板序列号,PHP获取通过windows系统命令wmic获取MAC地址、CPU序列号、主板序列号...
  5. vc编写魔兽争霸显血程序
  6. java基于SpringBoot+Vue的大学生体质健康测试管理系统 element
  7. C++单元测试工具 ECUT
  8. 各类数字调制系统仿真与误码率分析
  9. rs232读取智能电表_通过佰马智能网关搭建智慧灯杆系统
  10. python生成静态html_python – 从XML内容生成静态HTML站点