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};//这里不是声明编译器会报错

动态初始化和静态初始化在使用和内存结构上都没有区别。

使用数组

数组的使用时非常广的,这里写一个冒泡排序的例子来展示一下数组的使用:

 1 package org.hammerc.study;
 2
 3 public class Main
 4 {
 5     public static void main(String[] args)
 6     {
 7         int[] arr = {100, 187, 22, 9, 199, 500, 1, 134};
 8         for (int i = 0; i < arr.length - 1; i++)
 9         {
10             for (int j = i + 1; j < arr.length; j++)
11             {
12                 if (arr[i] < arr[j])
13                 {
14                     int temp = arr[i];
15                     arr[i] = arr[j];
16                     arr[j] = temp;
17                 }
18             }
19             System.out.print("第" + (i + 1) + "次排序:");
20             for (int j = 0; j < arr.length; j++)
21             {
22                 System.out.print(arr[j] + " ");
23             }
24             System.out.println("");
25         }
26         for (int i = 0; i < arr.length; i++)
27         {
28             System.out.println(arr[i]);
29         }
30     }
31 }

降序排序。

二维及多维数组

声明

int arr1[][];
int[] arr2[];
int[][] arr3;

和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度。

动态初始化

int[][] arr;
arr = new int[2][3];

数组所有元素都按类型的默认值来设定。

静态初始化

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

和1维数组使用一致;

使用

 1 package org.hammerc.study;
 2
 3 public class Main
 4 {
 5     public static void main(String[] args)
 6     {
 7         int[][] m = {
 8                 {1,2,3,1},
 9                 {1,3},
10                 {3,4,2}
11         };
12         int sum = 0;
13         for(int i = 0;i < m.length;i++){    //循环第一维下标
14             sum += m[i].length;             //第二维的长度相加
15         }
16     }
17 }

需要注意的是Java允许多维数组的第二维的数组的长度不一样,如上面的例子。

时间: 2024-10-23 00:55:14

Java学习笔记(三):数组的相关文章

黑马程序员----java学习笔记之数组、二维数组,附相关面试题

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 一:数组(掌握) (1)数组:存储同一种数据类型的多个元素的容器. (2)特点:每一个元素都有编号,从0开始,最大编号是长度-1. 编号的专业叫法:索引 (3)定义格式 A:数据类型[] 数组名; B:数据类型 数组名[]; 推荐是用A方

JAVA学习笔记(三十二)- 字符流 FileReader &amp; FileWriter

标题 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream;

Java学习笔记:数组

package myjava; /**  * 数组  * @author Administrator  *  */ import java.util.*; public class Myarray { public static void main(String args[]) { // 数组排序 int array[] = { 1, 9, 4, 2, 8, 6, 7 }; Arrays.sort(array); // 数组输出 for (int item : array) { System.o

java学习笔记六——数组

数组类型 数组是一种常见的数据结构,可用于存放多个数据,每一个数组元素存放一个数据,通常可以通过下标进行访问其元素. Java数组要求所有数组元素具有相同的数据类型.因此,数组元素的数据类型是唯一的. 数组定义如下: type[] arrayName; //推荐使用 type arrayName[]; //不推荐使用 通常我们都使用第一种方式.注意:数组的定义不能指定数组长度,只有在初始化时才指定长度. 数组初始化: int[] intArr = new int[]{1,2,3,4,5}; //

【原】Java学习笔记010 - 数组

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 需求:一堆分数,要统计最高分.最低分.总分.平均分 6 // int score1 = 80; 7 // int score2 = 70; 8 // int score3 = 90; 9 // int score4 = 65; 10 // // ... 11 // // 以计算平均分为例 12 /

Java学习笔记七——数组工具类Arrays

数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> asList(T... a) 作用:将指定数组或数组元素,转换成固定大小的List. 用法: String[] strArr = { "aaa", "bbb", "vvv" }; //用法1:参数是数组引用 List<String> li

JAVA学习笔记(五)- 数组

数组创建 数组 /* * 数组 */ public class Test { public static void main(String[] args) { int age;//声明 age = 20;//赋值 // int[] arrs;//声明了一个数组.array // int arrs2[]; // float[] fs = new float[5];默认元素的值为0.0 // char[] cs = new char[5];'\u0000' // String[] strs = ne

JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile

RandomAccessFile类 /* * RandomAccessFile类,随机读写文件 * * 数据分段要有规律,每段大小相等,可以将每段数据设置为较大的值,足以存在每一个段的数据 * */ public class Test04 { public static void main(String[] args) throws IOException { //writeFile(); readFile(); } // 写入数据 public static void writeFile()

Java学习笔记之数组

1.数组是引用数据类型,引用数据类型传递的是内存的使用权,是一块内存空间,它可以由多个单位同时使用.  而赋值的过程并不是把a数组内的数据传递给b,而是把a数组的内存使用权与b共享.所以当a和b共享同一个数组内存时,不管改变数组a内的值还是改变数组b内的值,该数组都会改变. 2.定义并初始化: 2.1 int[] arr; arr=new int[5]; for(int i=0;i<arr.length;i++) arr[i] = i; 2.2 int[] arr=new int[5]; for

JAVA学习笔记(三十四)- 字节打印流 PrintStream

PrintStream字节打印流 import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; import java.io.Reader; /* * Pri