Java基础笔记:Day_05 数组高级
2019-04-11 13:06
253 查看
一、数组
1.多维数组
二维数组的初始化操作: 静态初始化: int[][] arr = new int[][] { {1,2,3} , {4,5}, {6} }; 动态初始化: int[][] arr = new int[3][5] ;创建一个长度为3的二维数组,每一个元素(一维数组)的长度为5. int[][] arr = new int[0][5]
2.Java5对数组的新语法支持:
1):增强for循环-foreach。
2):方法的可变参数。
但是其实在JVM的底层,依然是使用到的是for循环,因此如果没有特殊需求我们依然首选使用for语句,毕竟for语句依然是十分强大的!
//语法: for(int index : nums ) //for(数据类型 操作数 : 数组名) { System.out.println(index); }
在以后的集合框架中,我们依然会使用到foreach语句。
关于方法的可变参数:
class Demo { public static void main(String[] args) { double[] nums = new double[]{1.0, 2.0, 3.0, 4.0}; double sum = getSum(nums); System.out.println(sum); } static double getSum(double[] arr) { double sum = 0.0; for(double index : arr) sum += index; return sum; } }
为了求多个数之和,我还得先创建一个数组来存储数据.
如果多个数是变化的,比如求3个数之和,变成求5个数之和…,还得去修改我的数组,但是数组是定长的.
但我期望在主方法中调用求和的方法是这样的.:
double sum = getSum(1.0,2.0,3.0,4.0);
那么我们可以在定义方法时候使用这个语法:
static double getSum(double ... arr)
方法的可变参数,其实也是一个语法糖,编译器级别的新特性,让开发者写代码更简单.
方法的可变参数其底层是就是一个数组类型.
可变参数必须作为方法的最后一个参数,避免参数的歧义性.
推论:方法最大只有一个可变参数.
二、自行封装数组操作工具ArrayUtil类
数组的算法操作,使用太频繁了,SUN公司就直接在JDK中提供了一个数组的工具类(Arrays).
java.util.Arrays类:
int binarySearch(type[] arr,type key) //使用二分法查找数组里某元素并返回其索引,若找不到返回负数. void sort(type[] arr) //使用调优后的快速法对指定数组排序。 String toString(type[] arr) //返回指定数组内容的字符串表示形式。 public static type[] copyOf(type[] original, int newLength) //复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
使用方法如下
class Demo { public static void main(String[] args) { double[] nums = new double[]{8.0, 2.0, 3.0, 4.0, 5.0, 1.0}; String ret_1 = java.util.Arrays.toString(nums); System.out.println(ret_1); java.util.Arrays.sort(nums); String ret_2 = java.util.Arrays.toString(nums); System.out.println(ret_2); } }
相关文章推荐
- Java基础学习笔记13——(StringBuffer的使用,数组高级,Arrays工具类,Integer和Character等包装类)
- 堆与栈的解析-以数组为例,解析数组在内存中的分布(JAVA基础-课堂笔记)
- Java笔记1 Java编程基础<3>数组运用
- 【Java学习笔记】05.数组、方法和方法重载
- Java基础笔记05-字符串处理(String类常用用法)
- JAVA入门基础笔记-数组类型
- Java基础-05总结方法,数组(一维)
- Java基础入门笔记-数组链表
- Java笔记1 Java编程基础<2>循环语句、函数(重载)、变量和数组的内存结构
- 黑马程序员----java基础语法笔记(函数、重载、数组)(下)
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- Java基础:Day13笔记内容 ( Object类、StringBuffer类)
- JAVA高级工程师课程笔记整理——(二)JAVA基础
- Java基础13-总结StringBuffer,StringBuilder,数组高级,Arrays,Integer,Character
- Java基础之数组队列及Java堆外内存学习笔记[图]
- Java笔记之语言基础_数组
- 【Java学习笔记】基础知识学习5【数组排序,复制】
- java 从零开始,学习笔记之基础入门<数组列表(ArrayList)>(九)
- 笔记整理(java基础二---常量,变量...数组)
- 黑马程序员_java基础学习笔记05_API常用类