Java基础学习笔记 -- 9(数组)

1. 数组

程序 = 算法 + 数据结构;

前面学过的if...else...、switch...、while循环、for循环等都是解决流程问题,即算法方面的问题。

数据结构:就是把数据按照特定的某种结构来保存,而数组就是一种最基本的数据结构。

1)数组的定义:

相同数据类型的元素组成的集合,里面只能存放相同的数据类型的元素。

数组的元素按照线性排列,即 One by One。

数组元素可以通过序号(下标)来识别,下标从0开始,最大下标是数组的长度-1。

2)数组的声明:

//声明整型数组arr,包含3个元素,每个元素都是int型

int[] arr = new int[3];  //arr中的每一个元素都默认为0

数组变量arr不再是基本类型变量,而是引用类型的,引用一个内存地址,里面存放的是数组元素。

3)数组的初始化:

int[] arr = {1,4,7};  // 静态初始化,只能在声明变量的同时直接赋值

int[] arr ;

arr = new int[3];  // 动态初始化,可依次进行元素赋值

int[] arr = new int[]{1,4,7};  // 动态初始化,可在定义时候直接赋值

4)数组的访问:

通过下标来访问元素 ,下标从0开始,到arr的长度(length)-1

int[] arr = {1,4,7,8};

System.out.println(arr.length); // 长度4

arr[0] = 100; // 给arr中的第1个数赋值为100

System.out.println(arr[3]); // 输出arr中的最后一个数

arr[4] = 88; // 错误的,下标越界/超范围

// 循环给数组元素赋值

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

arr[i] = 100;

}

// 循环输出数组

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

System.out.println(arr[i]);

}

// 倒序输出数组

for(int i=arr.length-1;i>=0;i--){

System.out.println(arr[i]);

}



案例25:



6)数组类型元素默认值

根据数组类型的不同,默认初始化值为:0(整数)、0.0(浮点数)、false(布尔类型)、

\u0000(char字符类型,显示无效果,相当于空格)、null(string类型,什么都没有,空值的意思)。

2. 数组工具类Arrays
    JDK提供的用来操作数组的工具类,提供了一些常用方法。

int[] arr = {1,4,7,8};

1)数组的输出

String str = Arrays.toString(arr);

2)数组的复制:

注意: Arrays.copyOf(源数组, 新长度),返回新数组

当新长度等于源数组长度时候,就是复制;

当新长度大于源数组长度时候,扩容,前面内容是源数组内容,多出的内容采用数组元素类型默认值填充;

当新长度小于源数组长度时候,截取,从下标0开始截取一定新长度的元素;



案例26:

输出结果:



*************************************************************************************************************

系统System还提供了一个数组的复制方法:

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

src:源数组; srcPos:源数组要复制的起始位置;

dest:目标数组; destPos:目标数组放置的起始位置;

length:复制的长度。

只要下列任何情况为真,则抛出 IndexOutOfBoundsException 异常,并且不会修改目标数组:

srcPos 参数为负。

destPos 参数为负。

length 参数为负。

srcPos+length 大于 src.length,即源数组的长度。

destPos+length 大于 dest.length,即目标数组的长度。

*************************************************************************************************************

案例27:



3)数组的排序:

Arrays.sort(arr),无返回值



案例28:

输出结果:



3. 练习题



案例29:



案例30:



本文出自 “永远年轻” 博客,请务必保留此出处http://kingkongzhao.blog.51cto.com/6319491/1653094

时间: 2024-10-28 14:01:08

Java基础学习笔记 -- 9(数组)的相关文章

JAVA基础学习笔记(2)

看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog      //类名 { String name;  //变量的声明 int age; String color; void bark()   //方法的定义(返回值为空,不带参数) { System.out.println(

java基础学习笔记day01

java基础学习笔记day01 1.软件开发: 软件:按照特定顺序组织的计算机数据和指令的集合 开发:软件的制作过程 软件开发:借助开发工具和计算机语言制作软件 2.java概述: java之父:詹姆斯·高斯林 JDK:java开发环境 jre:java运行环境 JVM:java虚拟机 java跨平台是因为,JVM能在不同的平台运行,JVM是跨平台的 JavaSE:标准版 JavaME:手机端,物联网 JavaEE:企业版,互联网项目 3.java语言特点: 简单性 解释性 面向对象 高性能 分

Java基础学习笔记

File 的高级获取功能 String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 示例 import java.io.File; class FileDemo9 { public static void  main(String[] args) { //获取E:下所有目录或者文件名称 File file=new  File("E:\\");//1.构建文件对象 String[]  fileNames=file.list();//2.获取E

黑马程序员--java基础学习笔记5

黑马程序员--java基础学习笔记6 一.笔记内容概述: 数组-第二种定义格式.数组-常见操作-遍历-最值-选择排序-冒泡排序-排序位置置换代码提取.数组-排序的性能问题.数组-常见功能-查找-折半查找.进制转换-查表法-整合. 二.常用内容介绍: 1.数组初始化的三种方式: int[] arr = new int[3]; int[] arr = new int[]{1,2,3}; int[] arr = {1,2,3}; 2.查表法: 如果数据中出现了对应关系,而且对应关系的一方是有序的数字编

JAVA基础学习笔记(1)

今天第一天开始学JAVA,时间:2014年6月17日 学习内容:1.java环境的架设 2.JAVA基本数据类型 1.JAVA环境的架设       1.要先去下载JDK,下载地址 2.安装完成后,设置环境变量 1.1环境变量的设置        1.右键-我的电脑-属性-高级-环境变量-系统变量,找到PATH,在里面加入jdk里bin目录的地址 如:c:\java\bin; 2.新建-名为classpath,值为. 1.2测试JAVA是否配置正确        1.在cmd里面输入javac.

[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装                            | 2.编写第一个java程序HelloWorld     | 3.编译执行HelloWorld                      

Java基础学习笔记二十八 管家婆综合项目

本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添加账务 编辑账务 删除账务 项目环境搭建 技术选型和jar包介绍 每个项目都要使用一些已经成熟的技术,它们通常是由一些专业组织或团队所提供的开源免费技术.在今后的学习过程中,我们会逐渐对这些专业组织有所了解.本项目中使用的技术如下: apache的commons组件: commons-dbutils

Java基础学习笔记(一)

程序员,程序猿,程序媛,码农 ——————————————————————————————————————————————————————— ——Java的应用领域    J2SE    主要用来开发桌面应用软件.    J2ME   嵌入式开发,例如手机里的软件,掌上电脑软件等等.     J2EE    属于网络编程,例如JSP等等,做网站用. ——参考资料    张孝祥    <Java就业培训>     林信良    <Java学习笔记>    机械工业    <Ja

Java基础学习笔记四 Java基础语法

数组 数组的需求 现在需要统计某公司员工的工资情况,例如计算平均工资.最高工资等.假设该公司有50名员工,用前面所学的知识完成,那么程序首先需要声明50个变量来分别记住每位员工的工资,这样做会显得很麻烦. 数组的概述 数组是指一组数据的集合,数组中的每个数据被称作元素.在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致. 数组的定义 格式: 数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; 举例:int[] x = new int[100]; 要点说明 数据类