java数组04

java数组04,第1张

java数组04 java数组04

文章目录
  • java数组04
  • 前言
  • 一、数组的概述?
  • 二、数组声明创建?
    • 2.1内存分析
    • 2.2数组三种初始化
    • 2.3数组的4个基本特点
    • 2.4数组常见错误(下标越界)
  • 三、数组使用?
    • 3.1普通的for循环
    • 3.2for each 循环
    • 3.3数组作为方法入参
    • 3.4数组作为返回值
  • 四、多维数组?
  • 五、Arrays类?
    • 常用方法
    • 1.`fill` 给数组赋值
    • 2. `sort` 按升序排序
    • 3 .`deepToString` 返回多维数组的字符串形式
    • 4. `toString` 返回数组的字符串形式
  • 六、`稀疏数组?`
  • 七、`冒泡排序?`


前言
一、数组的概述?

数组是相同数据类型的有效集合
数组描述的是相通类型的诺干个数据,安照一定的先后次序排列组合而成
每一个数组称为一个数组元素,每一个数组元素通过下表来获取访问

二、数组声明创建?

数组的元素是通过索引访问的 数组索引从0开始
获取数组长度 ann.length

语法:
数据类型[]  标识符;//声明 首选方法
或
数据类型 标识符[];//声明 效果相同但是不是首选方法

标识符=new 数据类型[空间大小];//创建数组

int [] ann =new int[6];//合体
 

实例:

public class a{
   public static void main(String[] args)
       //声明  栈
       int [] ann;
       //创建  堆
       ann=new int[6];
       //赋值  堆
       ann[0]=1;
       ann[1]=2;
       ann[2]=3;
       ann[3]=4;
       ann[4]=5;
       ann[5]=6;
       //输出 length获取数组长度
       for (int i=0; i 

实例:

2.1内存分析

java内存
1.堆 ******** 1.存放new的对象和数组
**************2.可以被使用的线程共享,不会存放别的对象引用
2.栈 ******** 1.存放基本变量(会包含这个基本类型的具体数值)
**************2.引用对象的变量(会存放这个引用在堆里面的具体地址)
3.方法区 ***1.可以被所用线程共享
*************2.包含了所有的class和static变量

实例:

public class a{
   public static void main(String[] args)
       //声明  栈
       int [] ann;
       //创建  堆
       ann=new int[6];
       //赋值  堆
       ann[0]=1;
       ann[1]=2;
       ann[2]=3;
       ann[3]=4;
       ann[4]=5;
       ann[5]=6;
       //输出 length获取数组长度
       for (int i=0; i 
2.2数组三种初始化 

静态初始化法

实例

int[] ann={1,2,3,4,5};
System.out.println(ann[0]);

动态初始化法

实例

 int [] ann;
 ann=new int[10];
 ann[0]=1;
 ann[1]=2;
 ann[2]=3;
 ann[3]=4;
 System.out.println(ann[2]);
 

数组的默认初始化
数组的引用类型 它的元素相当于类的实例变量 因此数组一经分配空间,其中的每一个元素也被按照实例变量同样的方式被隐式初始化
就是你数组的默认值和你定义的数组数据类型的默认值一样

根据数组的数据类型来定义默认值
如果 int [] ann=new int [];
默认就是0

实例

  int [] cnn=new int[10];
  //不赋值根据数组类型确定默认值
  System.out.println(cnn[4]);


2.3数组的4个基本特点

1.数组长度是确定的一旦被创建它的大小就不可改变
2.其数组元素的的类型必须是相同的不可以出现混合类型
3.数组可以是任何的数组类型 包括基本数据类型和引用类型
4.数组变量属于引用类型,数组也可以看成是对象,数组中的每一个元素相当于该对象的成员变量数组本身就是对象 java中对象在堆中, 因此数组无论保存原始类型还是对象类型,数组对象本身是在堆中的(意思就是定义的形式参数不会改变值的类型)

2.4数组常见错误(下标越界)

三、数组使用? 3.1普通的for循环

实例:

int [] ann={1,2,3,4,5};
//打印全部的数组元素
for(int i=0; i 

3.2for each 循环
  int[] ann={1,2,3,4,5};
  for(int a:ann){
  System.out.println(a);
  }
int[] ann={1,2,3,4,5};
int bnn=0;
for(int a:ann){
bnn=bnn+ann;
}
System.out.println(bnn);

3.3数组作为方法入参
public static void main(){
   int[] a={1,2,2,3,4,5};//静态数组
   ann(a);
   cnn(a);
}
//方法1
public static void ann(int[] a){
     for(int bnn:a){
     System.out.println(bnn);
     }
}

//方法2
public static void cnn(int[] a){
for(int i=a.length-1;i>=0;i--){
//数据的长度减一就是数组的下标长度
System.out.println(a[i]);
]


3.4数组作为返回值

四、多维数组?

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个维数组
二维数组

int[][] a=new int[2][5];

以上二维数组可以看成一个二行五列的数组

五、Arrays类?

数组的工具类java.util.Arrays
Arrays类都是静态的可以直接调用 对数组数据对象进行一系列的 *** 作
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用"而不是“不能")

常用方法 1.fill 给数组赋值
Arrays.fill(Object[] array,Object object)可以为数组元素填充相同的值
Arrays.fill(Object[] array,int from,int to,Object object)对数组的部分元素填充一个值

实例

   int[] nums = {2,5,0,4,1,-10};
   Arrays.fill(nums);
   System.out.println(Arrays.toString(nums,0,4,1));
   或者
    System.out.println(Arrays.toString(nums,1));
   

2. sort 按升序排序
Array.sort(Object[] array)
Arrays.sort(Object[] array, int from, int to)对数组元素指定范围进行排序

实例

   int[] nums = {2,5,0,4,1,-10};
   Arrays.sort(nums);
   System.out.println(Arrays.toString(nums));
   或者
   System.out.println(Arrays.toString(nums,0, 4));
   

3 .deepToString 返回多维数组的字符串形式
Arrays.deepToString(Object[][] arrays)返回多维数组的字符串形式

实例

int[][] nums = {{1,2},{3,4}};
        System.out.println(Arrays.deepToString(nums));
        

4. toString 返回数组的字符串形式
Arrays.toString(Object[] array)返回数组的字符串形式

实例

  int[] nums = {2,5,0,4,1,-10};
        System.out.println(Arrays.toString(nums));
        

equals 比较数组中元素是否相等

binarySearch 对排序好的数组进行二分查找法的 *** 作查找数组元素

六、稀疏数组? 七、冒泡排序?

从小到大的排序

int[] a={1,3,2,5,7,6,9,8}
public static int[] Max(int[] a){
     int b=0;
for(int i=0; i					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4670615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存