JAVA数组
2016-03-16 11:11
267 查看
一,
二,
三,
/* * 演示数组的定义 初始化 使用 * 1,数组也有类型,即:type[] 类型。 * 比如定义数组 String[] str; 含义为:定义一个 String[] 类型的对象 str。 * 对,数组是引用类型。 * 2,Java 中数组必须先初始化才能使用。 * 所谓初始化就是为数组元素分配内存并赋初值。 * 数组的初始化方式有两种,分别是静态初始化与动态初始化。 * 静态初始化是指由程序员显式指定每个数组元素的值,由系统决定数组长度; * 动态初始化则是由系统决定每个数组元素的值,而由程序员指定数组的长度。 * 注意,不能既显式指定每个数组元素的值又给出数组的长度,否则编译时会报错。 * 3,动态初始化时由程序员指定数组长度,值则由系统分配。具体如下: * byte short int long 0 * float double 0.0 * char '\u0000' * 类 接口 数组 等 引用类型 null * 4,对于数组的使用,可以凭借索引对元素赋值以及取出元素。 * 一旦取出元素后,对元素的使用就如同对普通变量的使用一样。 * 5,数组中提供了 length 属性(更加说明了数组是引用类型)表示数组的长度。 */ public class Ex02 { public static void main(String[] args) { // 定义数组 int[] a; // 定义数组时使用简单静态初始化 // int[] a = {1, 2, 3}; // 简单静态初始化只能在定义数组时配合使用,即,单独写:a = {1, 2, 3}; 编译时出错 // 静态初始化 a = new int[] { 1, 2, 3 }; // foreach 语句 for (int b : a) { System.out.print(b + " "); } System.out.println(); int[] c; // 动态初始化 系统为每个元素赋值为0 c = new int[4]; for (int b : c) { System.out.print(b + " "); } System.out.println(); } }
/** * 二维数组定义: * 相当于: * int[] d; * 其中d为int类型的一维数组 * 即d中的每个元素所存放的都是基本数据类型int型的数据 * 把type替换为int[] 即:int[][] d; * 定义d中每个元素所存放的是int[]类型的数据 * 即d中所存放的数据也为数组类型 此即为二维数组 * 要理解:数组本身就是一种类型 */ public class Ex03 { public static void main(String[] args) { int[][] d; // 定义数组d中开辟3个空间存放3个一维数组 d = new int[3][]; // 数字 3 位于第一个方括号中 代表第一维 for (Object o : d) { System.out.print(o + " "); } System.out.println(); // 对d[0]进行动态初始化 d[0] = new int[4]; // 对d[1]进行静态初始化 d[1] = new int[] { 1, 2, 3, 4, 5 }; /* * System.out.println(d[2].length);由于数组d[2]还未初始化 故d[2].length会出现异常 */ d[2] = new int[] { 1, 2, 3, 4 }; for (int i = 0; i < d.length; i++) { for (int j = 0; j < d[i].length; j++) { System.out.print(d[i][j] + " "); } System.out.println(); } // 静态初始化二维数组 int[][] f = new int[][] { { 1, 2 }, { 3, 4 } }; // int[][] f = {{1, 2}, {3, 4}}; for (int i = 0; i < f.length; i++) { for (int j = 0; j < f[i].length; j++) { System.out.println(f[i][j]); } } } }
二,
import java.io.IOException; /* * 演示 Java 的动态定义数组 * 即,数组长度无需在编译阶段确定 */ public class Ex04 { public static void main(String[] args) { int a = 0, b = 0; try { a = System.in.read(); // 在控制台敲入回车后, // 传入的字符为 回车符<13> 与 换行符<10> 这两个字符。 // 故,为了得到两个输入值,首先对其进行过滤。 if (System.in.read() == '\r' && System.in.read() == '\n') { b = System.in.read(); } } catch (IOException e) { } System.out.println(a); System.out.println(b); int[] arr; a -= '0'; b -= '0'; int length = a + b; arr = new int[a + b]; // arr = new int[length]; for (int i : arr) { System.out.println(i); } } }
三,
import java.util.Arrays; /* * 练习使用 Arrays 工具类 该类定义在 java.util 包下 用于处理数组 */ public class Ex05 { public static void main(String[] args) { char[] arr; // 原生类型数组 String[] str; // 引用类型数组 arr = new char[] { 'a', 'c', 'b' }; // 静态初始化 System.out.println(Arrays.toString(arr)); // 输出:[a, c, b] // 方法 Arrays.toString(); 的数据输出格式为: // 数组元素依次以逗号与空格相隔输出,当然,有方括号包裹 str = new String[] { "hello", ",", "world", "!" }; System.out.println(Arrays.toString(str)); String[] str1 = Arrays.copyOf(str, 5); System.out.println(Arrays.toString(str1)); Arrays.sort(str); System.out.println(Arrays.toString(str)); // 输出:[!, ,, hello, world] Arrays.sort(arr); // 由低到高排序 System.out.println(Arrays.toString(arr)); char[] arr1 = Arrays.copyOf(arr, 4); // 经过验证 // 当 newLength 的值大于 arr.length 时 多余部分为该类型的默认值 System.out.println(Arrays.toString(arr1)); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树