Java学习(3)_数组
来源:互联网 发布:网站流量统计java代码 编辑:程序博客网 时间:2024/06/07 22:48
数组的创建
一个数组变量实际上存储的是数组的引用,严格地讲,一个数组变量和一个数组是不同的,可陈述为:“myList是一个含有10个double类型元素的数组的引用变量”。
一维数组
(1)elementType[] arrayName = new elementType[arraySize];
(2)double [] myList = {1.9, 2.0, 3.4, 4.5};
二维数组
int [][] =new int[5][6];
- “动态数组”
单独介绍
数组的复制
Java中可以使用赋值语句赋值基本数据类型的变量,但是不能复制数组。将一个数组变量赋值给另一个数组变量,实际上只是将其引用复制,是两个变量指向相同的内存地址。
复制数组有三种方法:
1. 使用循环语句逐个复制数组元素;
int[] sourceArray = {1, 2, 3, 4, 5};int[] targetArray = new int[sourceArray.length];for(int i = 0; i < sourceArray.length; i++) { targetArray[i] = sourceArray[i];}
使用
java.lang.System
类的arraycopy
方法复制数组;arraycopy(sourceArray, src_pos, targetArray, tar_pos, length);
两个pos指起始位置,复制length个元素。
注意:arraycopy
方法违反了Java命名规范,正常应为驼峰。
可变长参数列表
可以把类型相同但是个数可变的参数传递给方法,方法中的参数声明如下:
typeName...parameterName
在方法声明中,指定类型后紧跟着省略号。只能给方法中指定一个变长参数,同时该参数必须是最后一个参数,任何常规参数必须在他之前。
Java将可变长参数当成数组对待,可以将一个数组或可变长的参数传递给方法。举例如下:
public class VarArgs { public static void main(String[] args) { Max(13, 5, 9, 2, 64, 1, 59); Max(new int[] {13, 5, 9, 2, 64, 1, 59}); } public static void Max(int...nums) { if(nums.length == 0) { System.out.println("No aegument passed"); return; } int result = nums[0]; for(int i = 0; i < nums.length; i++) { if(nums[i] > result) { result = nums[i]; } } System.out.println(result); }}
Arrays类
为了实现数组的排序和查找、数组的比较和对数组填充元素,java.util.Arrays类包含各种静态方法,这些方法对所有基本类型有重载方法。
- 排序: sort()方法
int[] nums = {13, 5, 9, 2, 64, 1, 59};java.util.Arrays.sort(nums);char[] chars = {'a', 'F', 'A', '4', 'D', '*', 'b' ,'9', 'z'};java.util.Arrays.sort(chars, 2, 5);//将第2位到第5位排序
- 二分查找:binarySearch()方法
数组必须提前按照增序排列好,否则返回负数。
char[] chars = {'a', 'b', 'd'};java.util.Arrays.binarySearch(chars, 'a');
- 检查数组是否相等:equals()方法
int[] nums1 = {13, 5, 9, 2, 64, 1, 59};int[] nums2 = {13, 5, 9, 2, 64, 1, 59};bool isEqual = java.util.Arrays.equals(nums1, nums2);
- 填充数组:fill()方法
char[] chars = {'a', 'F', 'A', '4', 'D', '*', 'b' ,'9', 'z'};java.util.Arrays.fill(list, 'c');java.util.Arrays.fill(list, 1, 5, 'c');//将第1位到第5位填充为‘c’字符
- Java学习(3)_数组
- java基础学习_数组
- Java学习_数组1_二维数组内存图解
- Java基础学习5_数组
- java学习之旅60--数组_多维数组_基本语法_内存分析
- java学习之旅61--数组_多维数组_练习_矩阵运算
- java学习之旅52--数组_数组基本概念_内存分析
- Java基础_数组
- Java基础_数组
- Java基础_数组
- Java入门_数组
- Java基础_数组
- JAVA基础_数组
- JAVA基础第四天学习日记_数组
- Java基础03天 学习笔记_循环|函数|数组
- JAVA学习笔记_打印数组的方式
- java学习之旅62--数组的拷贝_排序_二分法_命令行参数_增强for循环
- linux shell学习_数组
- Unable to locate JAR/zip in file system as specified by the driver definition: mysql-connector-java-
- c++入门小知识
- 美团面试 2017年秋季
- 面试可能遇到的一些问题
- lua 使用工具
- Java学习(3)_数组
- 如何进行结构体排序
- 读书笔记:为什么说参数是按值传递的
- mui 日期的联动
- A*搜索算法以及其实现
- 【bzoj4895】项链分赃(增强版)
- Jquery进度条
- Python文件io流
- 2017.9.25 Xor 失败总结