Java数组的定义,java中的数组定义

  Java数组的定义,java中的数组定义

  00-1010一、数组1的基本用法。什么是数组2。定义数组3。数组打印数组的使用。数组作为方法III参数的基本用法。阵列练习1。交换两个变量的值。写一个方法让数组中的每个元素* 23。模拟并实现tostring函数4。找出数组5中最大的元素。在数组中查找指定的元素。

  

目录

 

  00-1010数组:存储一组相同数据类型的数据的集合。

  00-1010 int[]:int类型的数组

  Double[]:双数组

  变量可以按类型定义,例如:

  Int[] array,array就是这种类型的变量。这个变量是存储一组相同数据的变量。

  数组定义的三种方式:

  第一种类型:

  int[] array={1,2,3,4,5,6 };定义一个数组并初始化它。

  虽然没说新,其实是个对象。

  注意事项:

  int[10] array={1,2,3,4,5,6 };写错了,int[]属于type,括号里不能加数字,相当于在这里破坏了它的类型。

  第二种类型:

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

  定义数组未初始化。

  第三种类型:

  int[] array3=new int[]{1,2,3,4,5,6 };

  并定义和初始化。

  三者中,使用最多的是第一种。

  00-1010获取数组长度:

  Java可以通过数组名array.length直接找到当前数组的长度

  访问数组元素:

  访问下标为4的数组元素。

  对数组元素的越界访问:

  Java语言越界,直接报错。

  更改数组元素:

  通过数组名中的括号,不仅可以访问下标的内容,还可以在下标中写入一些数据。

  00-1010第一种类型:(用于循环)

  第二:(针对循环增强,针对每个循环)

  for循环和for each循环的区别:

  For循环可以有下标,

  For each循环不能得到下标,但在集合中使用较多。

  第三种:Arrays,Java中的一个操作数组工具类。

  

一、数组的基本用法

 

  00-1010 JVM简介

  内存中局部变量的存储:

  不引用对象的书写:

  此引用不指向任何对象。

  一个引用可以同时指向多个对象吗?

  对于这段代码,它只能指向一个对象,并存储一个对象的地址。最后,只保存最后一个对象的地址。

  过程作为数组:的参数传递

  求解打印结果:

  前两种解决方案:

  Fun2打印结果:

  示例:下图代表什么?

  代表array2这个引用,指向了array1这个引用指向的对象。

  下图就代表了上面例子的意思:

  

 

  注意事项:

  引用指向引用这句话 是错误的,引用只能指向对象

  引用一定在栈上吗?

  不一定,一个变量在不在栈上,是你变量的性质决定的,如果你就是一个局部变量,一定是在栈上的。如果不是,例如,实例成员变量那就不一定就是在栈上的。

  

 

  

三、数组练习题

 

  

1.交换两个变量的值

public class TestDemo { public static void swap(int[] array){ int tmp = array[0]; array[0] = array[1]; array[1] = tmp; } public static void main(String[] args) { int[] array = {10,20}; System.out.println("交换前: "+array[0]+" "+array[1]); swap(array); System.out.println("交换后: "+array[0]+" "+array[1]); }

打印结果:

 

  

 

  

 

  

2.写一个方法, 将数组中的每个元素都 * 2 

 /** * 在原来的数组上扩大2倍 * @param array */ public static void enlarge(int[] array){ for (int i = 0; i <array.length ; i++) { array[i] = array[i]*2; } } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7}; enlarge(array); System.out.println(Arrays.toString(array)); }

打印结果:

 

  

 

  把原来数组扩大2倍的值放在一个新的数组中

  

/** * 把原来数组扩大2倍的值放在一个新的数组中 * @param array * @return */ public static int[] func(int[] array) { int[] ret = new int[array.length]; for (int i = 0; i < array.length; i++) { ret[i] = array[i] * 2; } return ret; } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7}; int[] ret = func(array); System.out.println(Arrays.toString(ret)); }

 

  

3.模拟实现tostring函数

public static String myToString(int[] array){ String str = "["; for (int i = 0; i <array.length ; i++) { str = str+array[i]; if(i != array.length-1){ str+= ","; } } str= str + "]"; return str; } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7}; String str = myToString(array); System.out.println(str); }

打印结果:

 

  

 

  

 

  

4.找数组中的最大元素 

 public static int maxNum(int[] array){ if(array == null) return -1; if (array.length == 0) return -1; int max = array[0]; for (int i = 1; i <array.length ; i++) { if(max < array[i]){ max = array[i]; } } return max; } public static void main(String[] args) { int[] array = {12,8,14,26,5,7,8}; int max = maxNum(array); System.out.println(max); }

打印结果:

 

  

 

  

 

  

5.查找数组中指定元素(顺序查找) 

 public static int findNum(int[] array,int key){ for (int i = 0; i <array.length ; i++) { if(array[i] == key){ return i; } } return -1; } public static void main(String[] args) { int[] array = {2,4,5,6,11,7,8,9}; System.out.println(findNum(array, 7)); }

打印结果:

 

  

 

  

 

  

6.查找数组中指定元素(二分查找) 

二分查找的必要条件是必须有序的数列 public static int binarySearch(int[] array,int key){ int left = 0; int right = array.length-1; while(left <= right){ int mid = (left+right)/2; if(array[mid] > key){ right = mid - 1; }else if(array[mid] < key){ left = left + 1; }else{ return mid; } } return -1; } public static void main(String[] args) { int[] array = {12,14,15,16,18,23}; System.out.println(binarySearch(array, 15)); }

打印结果:

 

  

 

  

 

  

 总结:

本文简单介绍了什么是数组、数组的写法、如何打印数组、数组的简单使用。通过简单例题的方式加深对数组的理解。上述就是今天的内容,文章哪里出现了问题我都会积极改正,也希望大家能更快的掌握自己想要的知识,让我们一起加油!!!!!

 

  到此这篇关于Java深入浅出数组的定义与使用上篇的文章就介绍到这了,更多相关Java 数组内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: