首页 > 作文

Java数组归纳总结

更新时间:2023-04-04 17:40:03 阅读: 评论:0

目录
一、一维数组1.创建方法2.初始化数组(一维数组)二、二维数组1.创建方法2.初始化二维数组三、遍历数组四、替换元素五、数组排序六、数组拷贝七、元素查询八、排序算法1.冒泡排序2.直接选择排序3.反转排序

一、一维数组

1.创建方法

数组元素类型 数组名字[];数组元素类型[] 数组名字;

比如:

int array[];//int 类型数组string str[];//string类型数组

我们还要给数组申请空间:

数组名字 = new 数组元素的类型[数组元素的个数];array = new int[10];//代表创建了一个有10个元素的整型数组//注意

当我们用new关键字为数组分配内存的时候,整型数组中各个元素初始值都为0

综合上面两种方法,我们可以直接在声明数组的时候为其开辟内存空间:

数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];

int array[] = new int[10]

2.初始化数组(一维数组)

常见的初始化方法如下:

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

或者

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

看一个栗子:

public class day {  public static void main(string[] args) {    int array[] = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};    int i;    for(i = 0;i<12;i++){      system.out.println((i+1)+"月"+array[i]+"天");    }  }}//我们创建数组array来承接天数,然后循环将其输出。

二、二维数组

二维数组一般表示行列间的关系,也是要重点掌握的。

1.创建方法

数组元素的类型 数组名字[][];数组元素的类型[][] 数组名字;

代码如下:

int array[][];我们可以直接分配内存空间:array = new int[2][5];或者也可以分别为每一维分配内存空间:array = new int[2][];array[0] = new int[2];array[1] = new int[3];

两种方法均可

2.初始化二维数组

type arrayname[][] = {value1,value2,value3....};/*type 是指数组数据的类型arrayname 是指数组的名称value 是指数组中各元素的值*/

我们看一个代码:

int array[][] = {{2,5},{5,1}};

我们应当注意初始化我们的二维数组后,应当注意数组的小标是在0开始的。
对于数组赋值,我们也可以直接进行赋值:

array[1][1] = 20; 

我们写一个类matrix,在主方法中编写代码实现输出一个3行4列且所有元素均为0的矩阵:

public class matrix {  public static void main(string[] args) {    int array[][] = new int[3][4];    for(int i=0; i<array.length;i++){      for(int j=0; j<array[i].length;j++){        system.out.println(array[i][j]);      }      system.out.println();    }  }}

和一维数组一样,创建成功后,系河北导游网统会给每一个元素分配初始值 0。

三、遍历数组

我们一般使用for循环来实现遍历数组,我们重点看一下如何遍历二维数组,我们需要双重for循环。

举个简单例子:

public class matrix {  public static vo花果山水帘洞洞口的对联是什么id main(string[] args) {    int array[][] = new int[3][4];    for(int i=0; i<array.length;i++){      for(int j=0; j<array[i].length;j++){        system.out.println(array[i][j]);      }      system.out.println();    }  }}

但是一般在java里面,我们不会这么玩,我们使用 foreach 来实现数组遍历:

public class find {  public static void main(string[] args) {    int array[][] = {{4,3},{5,3}};    int i = 0;    for(int a[]: array){      i++;      int j=0;      for(int b: a){        j++;        if(i==array.length && j==a.length){          system.out.println(b);        }el{          system.out.println(b + ",");        }      }    }  }}

四、替换元素

有时我们会遇到让我们替换数组里一些元素的情况,我们使用fill方法来实现:

fill(int[] array,int value);

使用指定的int值分配给int型数组的每个元素

我们来看一个简单的栗子:

import java.util.arrays;public class swap{  public static void main(string[] args) {    int array[] = new int[5];    arrays.fill(array,6);    for(int i = 0;i<array.length;i++){      system.out.println("第"+i+"个元素是:"+array[i]);    }  }}

上面的栗子,使得我们数组里面的每一个元素赋值均为6;

但是我们一般想要的是指定一些位置,那么我们继续来看:

fill(int[] array,int fromindex,int toindex,int value);fromindex 是要使用指定值填充的第一个元素的索引(被包括)toindex 是使用指定值填充的最后一个元素的索引(不包括)value 是储存在数组所有元素中的值//我们应当注意不要让索引位置越界,否则会出现数组越界异常
import java.util.arrays;public class fill{  public static void main(string[] args) {    int array[] = new int[]{1,2,3,4};    arrays.fill(array,1,2,6);//替换数组里第二个元素    for(int i=0; i<array.length;i++){      system.out.println("第"+i+"个元素是:"+array[i]);    }  }}

五、数组排序

在java里面提供了很棒的排序方法,也就是sort( )方法。

arrays.sort(object);//object也就是数组的名称

直接上代码:

import java.util.arrays;public class a{  public static void main(string[] args) {    int array[] = new int[]{1,2,3,4};    arrays.sort(array);    for(int i = 0;i<array.length;i++){      system.out.println(array[i]);    }  }}

java里面对于string类型数组的排序,遵循的原则是数字排在字母前面,大写字母排在小写字母前面。

六、数组拷贝

java里面一般可以用copyof() copyofrange()来实现对数组的复制。
我们先来看copyof():

copyof(array,int newlength);array 是要进行复制的数组newlength 是复制后的新数组的长度,如果比原来大,那么空余的地方用0填充,如果小,那么就截取到满足条件为止。

看一下代码:

import java.util.arrays;public class copy {  public stat营造书香校园ic void main(string[] args) {    int array[] = new int[]{1,2,3};    int newarray[] = arrays.copyof(array,5);    for(int i=0; i<newarray.length; i++){      system.out.println(newarray[i]);    }  }}/** 输出结果:* 1* 2* 3* 0* 0* */

然后来看一下copyofrange的方法:

copyofrange(array,int fromindex,int toindex)
array 是要进行复制的数组对象fromindex 开始复制数组的索引位置,需要包括toindex 是指要复制范围的最后索引位置,但是是不包括index的元素
import java.util.arrays;public class copy{  public static void main(string[] args) {    int array[] = new int[]{1,2,3,4,5};    int newarray[] = arrays.copyofrange(array,0,3);//前三个元素    for(int i = 0;i<newarray.length;i++){      system.out.println(newarray[i]);    }  }}

七、元素查询

二分法想必大家都听说过,在java里面也有二分的思想,也就是binaryarch( )方法,二分搜索方法来搜索数组,获取我们的指定对象,返回我们要搜索的元素的索引。
与复制相似,也有两种类似写法:

binaryarch(object[ ],object key) binaryarch(object[ ] ,int fromindex, int toindex ,object key ) 先看第一个:

binaryarch(object[ ] array,object key)//array 是要进行搜索的数组//key 是要进行搜索的值,如果这个key包含在数组里面,则返回搜索值得索引,否则返回 -1 或 " - "

我们看一个栗子:

int array[] = new int[]{4,16,10};arrays.sort(arr);int index = arrays.binaryarch(array,0,1,7);

我们看一下上面这个程序,我们发现原来的数组里面是没有 7 的,我们在返回值前面加一个 “ – ” ,然后它索引在0~1,我们看 7 是不是应该在 16 前面,在4的后面,经过sort排序之后,我们的顺序是{4,10,16},此时16的位置是 2 ,所以,我们搜索7的返回值index是 -2。

对于这种方法,应当注意,我们要是找某个元素,那么一定是排顺序后,排序好的,如果没有提前排序,那么结果是无法确定的。

我们再看一个可以查询到的:

import java.util.arrays;public class b{  public static void main(string[] args) {    int array[] = new int[]{5,2,4,3,1};    arrays.sort(array);    int index = array.binaryarch(array,4);    system.out.println("4的索引位置是"+index);  }}//返回值是 3 ,也就是 4 的索引位置

我们再来看一下binaryarch(object[ ] ,int fromindex, int toindex ,object key )

binaryarch(object[ ] array,int fromindex, int toindex ,object key)
array要检索的数组fromindex是指定范围的开始处索引to女朋友生日祝福index 是指范围内的结束处索引key 是指要搜索的元素

使用此方法依然要进行数组的排序

举个栗子:

import java.util.arrays;public class c{  public static void main(string[] args) {    string str[] = new string[]{"ab","cd","ef","gh"};    arrays.sort(str);    int index;    index = arrays.binaryarch(str,0,2,"cd");    system.out.println("cd的索引位置:"+index);  }}//cd的索引位置:1

八、排序算法

笔者对于常见的排序算法有过详细的讲解: 小白学六大排序算法(c语言版),思想都是一样的,这里笔者就不再讲解,选取冒泡排序,直接选择排序,反转排序这三个方面来用java实现一下 :

1.冒泡排序

public class bubblesort {  public static void main(string[] args) {    int[] array = {1,5,6,9,8,7};    bubblesort bubblesort = new bubblesort();    bubblesort.sort(array);  }  public void sort(int[] array){    for(int i = 1;i<array.length;i++){      for(int j = 0;j<array.length-i;j++){        if(array[j]>array[j+1]){          int temp;          temp=array[j];          array[j]=array[j+1];          array[j+1]=temp;        }  慢慢的我懂了    }    }    showarray(array);  }  public void showarray(int[] array){    for(int i:array){      system.out.print(" "+i);    }    system.out.println();  }}

2.直接选择排序

public class lectsort {  public static void main(string[] args) {    int array[] = {5,1,2,9,4,6,7};    lectsort lectsort = new lectsort();    lectsort.sort(array);  }  public void sort(int[ ] array){    int index;    for(int i = 1; i<array.length; i++){      index = 0;      for(int j=1;j<=array.length-i;j++){        if(array[j]>array[index]){          index = j;        }      }      int temp;      temp = array[array.length-i];      array[array.length-i] = array[index];      array[index] = temp;    }    showarray(array);  }  public void showarray(int[] array){    for(int i:array){      system.out.print(" "+i);    }    system.out.println();  }}

3.反转排序

public class reversort {  public static void main(string[] args) {    int[] array = {1,2,3,4,5,6};    reversort reversort = new reversort();    reversort.sort(array);  }  public void sort(int[] array){    system.out.println("原数组:");    showarray(array);    int temp;    for(int i = 0; i<array.length/2; i++){      temp = array[i];      array[i] = array[array.length-1-i];      array[array.length-1-i] = temp;    }    system.out.println("反转之后:");    showarray(array);  }  public void showarray(int[] array){    for(int i:array){      system.out.print(" "+i);    }    system.out.println();  }}

到此这篇关于java数组归纳总结的文章就介绍到这了,更多相关java数组归纳 内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 17:40:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/b06bec72ab60c3cd892e9211cbc9ad00.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Java数组归纳总结.doc

本文 PDF 下载地址:Java数组归纳总结.pdf

标签:数组   元素   索引   方法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图