Java 基本语法---Java数组
Java 基本语法---Java数组
0. 概述
数组:相同类型的数据 按照顺序 组成的一种 引用数据类型 。
数据类型:基本数据类型 + 引用数据类型;
引用数据类型:类 + 接口 + 数组 ;
一维数组:声明,创建,初始化,元素的引用,长度
1. 数组声明
变量声明的语法格式: 变量类型 变量名;
数组声明的语法格式:数据类型 [ ] 数组名;(数据类型 数组名[ ])
int[] myIntArray; //首选方法
(int myIntArray[];) //来源于C/C++,效果相同,但不是首选方法
String[] strArray;
2. 数组创建
语法格式一 先声明后创建
数据类型[] 数组名;
数组名 = new 数据类型[ 数组长度 ];
int[] array;
array = new int[10];
//创建一个长度为 10 的整型数组array;
语法格式二 声明的同时进行创建数组
数据类型 [] 数组名 = new 数据类型 [ 数组长度 ];
dataType[] arrayRefVar = new dataType[arraySize];
// 1.使用 dataType[arraySize] 创建了一个数组;
// 2.把新创建的数组的引用赋值给了变量 arrayRefVar。
int[] arr = new int[10]; //创建一个长度为10的整型数组arr
//注意:数组的长度必须给定
3. 数组的初始化
声明数组的同时给数组赋值,叫做数组的初始化;
int[] arr = {1,2,3,4,5,6,7,8,9,10};
// 数组的长度就是初始化数组时所给数组元素的个数。
4. 数组元素的引用
数组元素的访问是通过索引访问的。
语法格式: 数组名[ 下标 ];
注意:下标从0开始(数组索引从0开始,所以索引值从0到array.length - 1);
5. 数组的长度
int[] arr = {0,1,2,3,4,5,6,7,8,9};
//属性 length 表示数组的长度,例如:arr.length;
6. 案例
6.1 案例1:一维数组的应用
int 数组创建时数组元素默认值为0;
double数组创建时数组元素默认为0.0;
char 数组创建时数组元素默认为 ;
String 数组创建时数组元素默认为 null;
public class ArrayTest {
public static void main(String[] args) {
//声明一个整型数组
int[] intArray;
//声明一个字符串类型的数组
String strArray[];
//创建数组
intArray = new int[5];
strArray = new String[10];
//声明数组的同时进行创建数组
double[] doubleArray = new double[4];
//初始化数组
char[] chArray = {'a','b','c','d'};
char[] ch1Array = new char[5];
System.out.println("ch1Array 数组的长度为:" + ch1Array.length);
System.out.println("ch1Array 数组中的第2个元素为:" + ch1Array[3]);
System.out.println("chArray 数组的长度为:" + chArray.length);
System.out.println("chArray 数组中的第2个元素为:" + chArray[1]);
System.out.println("intArray 数组的长度为:" + intArray.length);
System.out.println("intArray 数组中的第二个元素为:" + intArray[1]);
System.out.println("strArray 数组的长度为:" + strArray.length);
System.out.println("strArray 数组中的第5个元素为:" + strArray[4]);
System.out.println("doubleArray 数组的长度为:" + doubleArray.length);
System.out.println("doubleArray 数组中的第4个元素为:" + doubleArray[3]);
System.out.println();
//循环为整型数组赋值
for(int i = 0;i < 5;i++)
{
intArray[i] = i + 2;
}
//循环输出整型数组中的元素
System.out.println("整型数组intArray 中的元素值分别为:");
//数组下标越界(数组下标超出范围)Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
// at com.ryanjie.ArrayTest.main(ArrayTest.java:51)
// for(int i= 0;i < 6;i++)
// {
// System.out.print(intArray[i] + " ");
// }
// System.out.println();
for(int i = 0;i < 5;i++)
{
System.out.print(intArray[i] + " ");
}
System.out.println();
}
}
Output:
ch1Array 数组的长度为:5
ch1Array 数组中的第2个元素为:
chArray 数组的长度为:4
chArray 数组中的第2个元素为:b
intArray 数组的长度为:5
intArray 数组中的第二个元素为:0
strArray 数组的长度为:10
strArray 数组中的第5个元素为:null
doubleArray 数组的长度为:4
doubleArray 数组中的第4个元素为:0.0
整型数组intArray 中的元素值分别为:
2 3 4 5 6
6.2 案例2:求数组元素的累加和
public class ArraysSum {
public static void main(String[] args) {
//求整型数组的累加和
//定义整型数组
int[] intArray = new int[5];
//从键盘开始接收数据,为元素进行赋值
Scanner sc = new Scanner(System.in);
for(int i = 0;i < intArray.length;i++)
{
System.out.println("请输入第 " + (i + 1) + "个元素的值:");
intArray[i] = sc.nextInt();
}
//输出intArray 数组中的元素
System.out.println("数组中的元素分别为:");
for(int i = 0;i < intArray.length; i++ )
{
System.out.print(intArray[i] + " ");
}
System.out.println();
//输出intArray数组中的元素的和
int sum = 0;
for(int i= 0; i < intArray.length;i++)
{
sum += intArray[i];
}
System.out.println("intArray数组的元素和为:" + sum);
}
}
Output:
请输入第 1个元素的值:
100
请输入第 2个元素的值:
100
请输入第 3个元素的值:
50
请输入第 4个元素的值:
50
请输入第 5个元素的值:
150
数组中的元素分别为:
100 100 50 50 150
intArray数组的元素和为:450
6.3 案例3:求数组元素的最大值
public class MaxElement {
public static void main(String[] args) {
//求数组中的最大值
//定义整型数组
//int[] intArray = {34,23,78,56,31,66};
int[] intArray = new int[6];
//从键盘读取数组元素值
Scanner sc = new Scanner(System.in);
for(int i = 0;i < intArray.length;i++ )
{
System.out.println("请输入第 " + (i+1) + "个元素的值:");
intArray[i] = sc.nextInt();
}
//输出intArray数组中的元素
System.out.println("intArray 数组中的元素分别为:");
for(int i = 0;i < intArray.length;i++)
{
System.out.print(intArray[i] + " ");
}
System.out.println();
int max = intArray[0];
for(int i = 1;i < intArray.length;i++)
{
if(max < intArray[i])
{
max = intArray[i];
}
}
System.out.println("intArray 数组元素的最大值为:" + max);
}
}
Output:
请输入第 1个元素的值:
34
请输入第 2个元素的值:
23
请输入第 3个元素的值:
78
请输入第 4个元素的值:
56
请输入第 5个元素的值:
31
请输入第 6个元素的值:
66
intArray 数组中的元素分别为:
34 23 78 56 31 66
intArray 数组元素的最大值为:78
7. foreach 循环
foreach 循环又称为增强型循环,它能在不使用下标的情况下遍历数组。
int[] arr = {1,2,3,4,5,6};
for(int n:arr)
System.out.print(n + " ");
//每次把数组中的元素存放到n中,输出。循环遍历一遍就终止;
public class Test {
public static void main(String[] args) {
//定义整型数组
//int[] intArray = {34,23,78,56,31,66};
int[] intArray = new int[6];
//从键盘读取数组元素值
Scanner sc = new Scanner(System.in);
for(int i = 0;i < intArray.length;i++ )
{
System.out.println("请输入第 " + (i+1) + "个元素的值:");
intArray[i] = sc.nextInt();
}
//foreach循环
for(int n:intArray)
{
System.out.print(n + " ");
}
System.out.println();
}
}
8. 数组作为函数的参数
数组作为参数传递给方法。
调用printfDoubleArray方法打印doubleArray数组:
public static void printfDoubleArray(double[] doubleArray) {
for (double element: doubleArray )
{
System.out.println(doubleArray[i] + " ");
}
}
//调用printfDoubleArray方法打印doubleArray数组
printfDoubleArray(new double[] {3.14,6.66,8,88,3.59,7.84});
9. 数组作为函数的返回值
数组可以作为函数的返回值。
将list数组中的元素值赋值给result数组:
public atstic int[] reverse(int[] list){
//声明 result 数组 并创建 result 数组
int[] result = new int[list.length];
for (int i = 0, j = result.length - 1; i < list.length; i++, j--)
{
result[j] = list[i];
}
return result;
}
10. 冒泡排序 BubbleSort
public class BubbleSort {
public static void main(String[] args) {
//冒泡排序BubbleSort
int[] intArray = {34,23,78,56,31,66};
System.out.println("排序前的数组元素分别为:");
for(int element:intArray)
{
System.out.print(element + " ");
}
System.out.println();
//BubbleSort
int temp;
for (int i = 0; i < intArray.length; i++)
{
for (int j = 0; j < intArray.length-i-1; j++)
{
if(intArray[j] > intArray[j+1])
{
temp = intArray[j];
intArray[j] = intArray[j+1];
intArray[j+1] = temp;
}
}
}
//输出排序后的数组
System.out.println("排序后的数组元素分别为:");
for(int element:intArray)
{
System.out.print(element + " ");
}
System.out.println();
}
}
OutPut:
排序前的数组元素分别为:
34 23 78 56 31 66
排序后的数组元素分别为:
23 31 34 56 66 78
Java 基本语法---Java数组的更多相关文章
- Java基础语法(7)-数组
title: Java基础语法(7)-数组 blog: CSDN data: Java学习路线及视频 1.数组的概述 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并 ...
- Java基础语法(8)-数组中的常见排序算法
title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...
- Java 基本语法---Java方法
Java 基本语法---Java方法 0.概述 方法:就是用来解决一类问题的代码的有序组合,是一个功能模块: 在方法部分,只使用对象名词调用方法: Scanner sc = new Scanner(S ...
- Java 基本语法---Java运算符
Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...
- Java基础语法(数组)
第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...
- JavaSE入门学习9:Java基础语法之数组
一数组的定义 数组能够理解为是一个巨大的"盒子",里面能够按顺序存放多个类型同样的数据.比方能够定义int型的数组 scores存储4名学生的成绩. watermark/2/tex ...
- Java基础语法:数组
一.简介 描述: 数组是相同类型数据的有序集合. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 基本特点: 数组的长度是确定的.数组一旦被创建,它的大小就是不可以改变的. ...
- Java基础语法(三)---数组
一.概念 同一种类型数据的集合.简单的来说就是一容器,用来装东西的. 使用数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素. 二.一维数组的格式 格式1:元素类型 [ ...
- Java基础语法<六> 数组 Arrays
笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 允许数组长度为0 new element[0] 数组长度为0与null不同 1. 数组拷贝 允许将一 ...
随机推荐
- spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上
spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上
- Racket Cheat Sheet
Racket Cheat Sheet 来源 http://docs.racket-lang.org/racket-cheat/index.html?q=Racket%20Cheat%20Sheet ...
- 【BZOJ1055】[HAOI2008]玩具取名(动态规划)
[BZOJ1055][HAOI2008]玩具取名(动态规划) 题面 BZOJ 洛谷 题解 裸的区间\(dp\),设\(f[i][j][W/I/N/G]\)表示区间\([i,j]\)能否由某个字母替换过 ...
- JAVA AES CBC PKCS5Padding加解密
package com.hzxc.groupactivity.util; /** * Created by hdwang on 2019/1/17. */ import org.slf4j.Logge ...
- 1.Unix,Linux起源与编译原理
一.UNIX操作系统 作者:丹尼斯.里奇,肯.汤普逊 版权:贝尔实验室 时间:1971 特点:多用户,多任务(多进程),多CPU(多种CPU架构),高安全,高可靠,高性能,高稳定 应用:构 ...
- eos交易同步过程和区块生产过程源码分析
交易同步过程 1 通过命令cleos调用 cleos transfer ${from_account} ${to_account} ${quantity} 发起交易2 eos调用chain_plugi ...
- 浅谈移动端 View 的显示过程
作者:个推安卓开发工程师 一七 随着科技的发展,各种移动端早已成为人们日常生活中不可或缺的部分,人们使用移动端产品工作.社交.娱乐……移动端界面的流畅性已经成为影响用户体验的重要因素之一.那么你是否思 ...
- VBA:Double类型与Decimal类型
Sub DataType() For i = 0 To 100 t1 = t1 + 0.1 t2 = t2 + CDec(0.1) Debug.Print "Double=" &a ...
- python 基础 元组()
# 元组 应用场景 # 尽管 Python的列表中可以存储不同类型的数据 # 但是在开发中,更多的应用场景是 # 1.列表存储相同类型的数据 # 2.通过迭代遍历,在循环体内部,针对列表中的每一项元素 ...
- Mysql MERGE引擎简介
一. 什么是MERGE引擎MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询. 二. 应用场景如果需要把日志纪录不停的录入MySQL数据库,并且每天.每周或 ...