博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 数组
阅读量:7112 次
发布时间:2019-06-28

本文共 1485 字,大约阅读时间需要 4 分钟。

1、什么叫数组

用于连续存放长度一定的某一固定数据类型的空间(相同数据类型的集合)

2、为什么要用数组

数组可以连续存储数据,也可以存储连续有序的数据,方便数组操作。

3、数组使用四步骤

声明 int[] a;  分配空间 a=new int[元素个数];  赋值 a[下标]=1;  使用 a[0]+=1;(其中,赋值不是必要的,可以省略)

 

赋值省略情况下:

  数组的缺省值:int=0;  double=0.0;  float=0.0;  char= ;(空值符)  String=null;  boolean=false;

4、数组3种定义方式

  1) int[] a=new int[元素个数];(最频繁使用)

  2) int[] a={1,2,3,4,5};(大括号内包含明确的值)

  3) int[] a=new int[]{1,2,3,4,5};(该方式是2)中的扩充了new int[]结构,而这个结构的中括号[]不能自定义长度)

5、引用数据类型与值类型

6、值类型与引用类型的区别

  首先,引用类型是没有范围的,程序员可以自定义类型。常见的引用类型:String、Scanner、Random、数组

  1)值类型与数组引用类型

    

  2)值类型与String引用数据类型

上面两种比较都用到了java的GC 垃圾回收机制,该机制会在堆中的空间没有对应的栈中的变量引用,会定时清理该垃圾空间,当然,该空间的数据一并清除。具有时效性、滞后性

7、java空间分类

一共6种:栈、堆、字符串池、方法池、常量池、静态池

8、数据常见的操作

a)增

int[] array1=new int[3];

array1[0]=1;

array1[1]=2;

b)删  (难点)

1)先查找要删除元素的下标

int a={76,65,87,56,90};

删除值小于60的元素

int static=-1;//打标记,static=-1表示该数组内没有小于60的元素

for(int i=0;i<a.length;i++){

  if(a[i]<60){

  static=i;

  }

 }

if(static!=-1){

System.out.println("该元素存在:"+i);

}else{

System.out.println("该元素不存在");

}

2)元素平移

for(int i=static;i<s.length-1;i++){

  a[i]=a[i+1];

}

3)备份数据

int[] a1=a;//重新声明新数组a1,将a数组的地址复制给a1

4)重新分配空间

for(int i=0;i<a1.length-1;i++){

a=a1[i];

}

5)还原数据

for(int i=0;i<a.length;i++){

System.out,print(i+"\t");

}

c)改

d)查  (最复杂,使用最频繁)

9、排序

1)冒泡排序

口诀:N个数字来排序,两两相比较大靠前,外层循环N-1,内层循环N-1-i

2)选择排序

口诀:N个数字来排序,两两相比较大靠前,外层循环N,内层循环N

3)直接插入排序

4)快速排序

引用Array.sort();方法

10、数组拷贝

System.arraycopy(源数组,起点,目标数组,起点,长度);

11、二维数组

用for嵌套循环,外层循环控制行,内层循环控制列

转载于:https://www.cnblogs.com/dopaer/p/6509569.html

你可能感兴趣的文章
前向星和链式前向星
查看>>
3.1软件体系结构风格
查看>>
LinkedHashMap 源码解析
查看>>
Linux系统centOS7在虚拟机下的安装及XShell软件的配置
查看>>
网络知识 ACL NAT IPv6
查看>>
2.1分层数据流
查看>>
laravel创建新的提交数据
查看>>
FineBI学习系列之FineBI的ETL处理(图文详解)
查看>>
Java 8 新特性
查看>>
Windows启动配置数据(BCD)存储文件包含一些无效信息
查看>>
slim请求参数获取
查看>>
MySQL主从介绍 准备工作 配置主 配置从 测试主从同步
查看>>
CSS------当内容超出div宽度后自动换行和限制文字不超出div宽度和高度
查看>>
要恢复页面吗?Chrome未正确关闭
查看>>
hbs模板(zmaze ui用的)
查看>>
使用ASP.NET SignalR实现一个简单的聊天室
查看>>
Spring3.1 对Bean Validation规范的新支持(方法级别验证)
查看>>
基于Docker搭建MySQL主从复制
查看>>
005 使用SpringMVC开发restful API三--处理创建请求
查看>>
手机Soc芯片简介
查看>>