Java学习笔记(三):数组
数组声明
java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。
int arr1[];
int[] arr2;
两种写法都可以。
初始化
动态初始化
使用new来为数组分配内存空间:
int[] arr;
arr = new int[10];
需要注意的是分配内存空间时要指定数组的数量,同时数组中的每一个元素都会被设置为对应类型的默认值。
内存结构

静态初始化
相对于上面的初始化,还有一种初始化的方式可以在初始化时就指定好数组的内容:
int[] arr = {0,1,2,3,4,5,6,7,8,9};//静态初始化必须在声明时进行
arr = {9,8,7,6,5,4,3,2,1,0};//这里不是声明编译器会报错
动态初始化和静态初始化在使用和内存结构上都没有区别。
使用数组
数组的使用时非常广的,这里写一个冒泡排序的例子来展示一下数组的使用:
package org.hammerc.study; public class Main
{
public static void main(String[] args)
{
int[] arr = {100, 187, 22, 9, 199, 500, 1, 134};
for (int i = 0; i < arr.length - 1; i++)
{
for (int j = i + 1; j < arr.length; j++)
{
if (arr[i] < arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
System.out.print("第" + (i + 1) + "次排序:");
for (int j = 0; j < arr.length; j++)
{
System.out.print(arr[j] + " ");
}
System.out.println("");
}
for (int i = 0; i < arr.length; i++)
{
System.out.println(arr[i]);
}
}
}
降序排序。
二维及多维数组
声明
int arr1[][];
int[] arr2[];
int[][] arr3;
和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度。
动态初始化
int[][] arr;
arr = new int[2][3];
数组所有元素都按类型的默认值来设定。
静态初始化
int[][] m = {
{1,2,3},
{2,3,4}
};
和1维数组使用一致;
使用
package org.hammerc.study; public class Main
{
public static void main(String[] args)
{
int[][] m = {
{1,2,3,1},
{1,3},
{3,4,2}
};
int sum = 0;
for(int i = 0;i < m.length;i++){ //循环第一维下标
sum += m[i].length; //第二维的长度相加
}
}
}
需要注意的是Java允许多维数组的第二维的数组的长度不一样,如上面的例子。
Java学习笔记(三):数组的更多相关文章
- Scala入门学习笔记三--数组使用
前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...
- 【原】Java学习笔记012 - 数组
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:小店对自己的 ...
- 1.14(java学习笔记)数组
假如我们需要用到1000个相同类型的数据,肯定不可能创建1000个变量, 这样既不方便,也不直观,也不便于我们使用.这时就需要用到数组. 一.数组的声明与使用 public class Array { ...
- Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...
- java学习笔记六——数组
数组类型 数组是一种常见的数据结构,可用于存放多个数据,每一个数组元素存放一个数据,通常可以通过下标进行访问其元素. Java数组要求所有数组元素具有相同的数据类型.因此,数组元素的数据类型是唯一的. ...
- 【原】Java学习笔记011 - 数组
package cn.temptation; import java.util.Scanner; public class Sample01 { public static void main(Str ...
- 【原】Java学习笔记010 - 数组
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:一堆分数,要 ...
- Java学习笔记三十一:Java 包(package)
Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...
- Java学习笔记三十:Java小项目之租车系统
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...
- Java学习笔记三:Java的变量、常量、变量的类型及使用规则
Java的变量.常量.变量的类型及使用规则 每一种语言都有一些具有特殊用途的词,Java也不例外,它们被称为关键字.关键字对 Java 的编译器有着特殊的意义. 一:Java中的关键字: 注:Java ...
随机推荐
- POJ3485 区间问题
题目描述有些坑.. 题意: 有一条高速公路在x轴上,从(0,0)到(L,0).周围有一些村庄,希望能够在高速公路上开通几个出口,使得每个村庄到最近的出口距离小于D,求出最少需要开通多少个出口. 解题思 ...
- 专题:Windows编译x264、SDL、faac、ffmpeg过程
Windows上编译ffmpeg完整过程,包括编译x264.SDL.faac.在Windows上编译ffmpeg需要用MinGW+msys,本专题用于记录编译过程中遇到的各种问题及解决方法,转载请注明 ...
- uestc 1721 吴神,人类的希望
// 将n个相同的球放进m个盒子 盒子不为空的方法总数// dp[i][j] 表示i个盒子 j个球的方法总数// 递推关系 dp[i][j]=dp[i-1][j-1]+d[i][j-i]// a. i ...
- win7/8下VirtualBox虚拟共享文件夹设置
1. 安装增强功能包(VBoxGuestAdditions) 打开虚拟机,运行ubuntu,在菜单栏选择"设备->安装增强功能",根据提示即可安装成功(成功后也可 以实现 ...
- source insight 的使用
一,新建工程:project-->new project --> ok--> ok--> close 完成项目的添加 二,sourceInsight的使用 1.跳转到标识定义处 ...
- MVC中前台所得
前台页面时间格式修改: @item.CreateTime.ToString("yyyy-MM-dd hh:mm:ss") 前台方法调用传参数: <a href="# ...
- 如何解决重启数据库时报ORA-01031无法登数据库
问题现象:以无用户方式登录数据库,重启或关闭数据时,遇到下列问题: C:\Documents and Settings\xuzhengzhu>sqlplus /nolog SQL*Plus: R ...
- Hibernate优化
前言 在一般情况下,Hibernate需要将执行转换为SQL语句从而性能低于JDBC.但是在经过比较好的性能优化之后,性能还是让人相当满意的,特别是应用二级缓存之后,甚至可以获得比较不使用缓存的JDB ...
- Oracle数据库表结构导出
1. 在PL/SQL中找到"工具--导出用户对象"菜单.点击运行.
- PL/Sql 中创建、调试、调用存储过程
存储过程的详细建立方法 1.先建存储过程 左边的浏览窗口选择 procedures ,会列出所有的存储过程,右击文件夹procedures单击菜单"new",弹出 template ...