数据结构:浅谈数组(代码主要以Java形式展开)
2019-04-21 15:24
417 查看
版权声明: https://blog.csdn.net/weixin_42331530/article/details/89433581
有过代码基础的同学应该都知道:数组是任何一门编程中语最基本的数据结构,可以说数组几乎能表示一切数据结构。其中的重要性不必我多说。每种语言对数组的处理也是有着不同的处理,但是其本质还是对数据的存放,这一点是毋庸置疑的。
先说一下数组的简单声明,每一种编程语言对数组的声明也有着细微的区别,在这里我们主要说的是Java。在Java中,数组的声明主要有两种:
第一种:
数据类型 [] 数组名 = new 数据类型[数组长度]; 例如:int []MyArray = new int[5];//声明并实例化了一个长度为5的数组.
在这里 [] 可以放在数组名的前面,也可以放在数组名的后面。但是我们比较习惯于数组名称的前面,这样比较直观。也比较容易理解。
第二种:
数据类型 [] 数组名 = {数组元素1,数组元素2,...}; 例如:int [] MyArray = {0,1,2};//声明一个含有元素0,1,2的int型数组.
再说一下数组的访问方式,在数据结构中,数组是存在着下标索引的,通过对下标的索引来得到相应的元素。数组的下标最小标位0,也就是说第一个数组元素的小标为0,第n个数组元素的下标为n-1。
知道了数组的简单用法后,下面我们以类的思想来封装数组,实现最基本的“增删查改”功能。
public class MyArray{ private int[] Array;//定义一个数组 private int elems;//定义一个数组的实际有效长度 private int length;//定义一个数组的最大长度 public MyArray(){ //默认初始化生成一个长度为50的数组. elems = 0; length = 50; Array = new int[length]; } public MyArray(int length){//初始化一个长度为length的数组 elems = 0; this.length = length; Array = new int[length]; } //获取数组的有效长度. public int getsize(){ return elems; } //显示数组里的所有元素. public void display(){ for(int i = 0;i < elems;i++) { System.out.print(Array[i]+">>>"); } } //添加数组元素 public void AddNum(int num){ if(elems != length) { Array[elems] = num; elems++; } else System.out.println("数组越界!"); } //根据数组下标获取指定数组元素 public void getnum(int n){ if(n > elems||n < 0) { System.out.println("访问的数组越界!"); } else System.out.println("数组下标为" + n + "的元素为:" + Array[n]); } //在数组内寻找指定的元素 public int SearchNum(int num){ int i; for(i = 0;i<elems;i++){ if(Array[i]==num) { System.out.println("寻找到指定的元素为:" + Array[i]); break; } } if(i == elems) { return -1; System.out.println("访问的元素不在数组内!"); } return i; } //删除数组内的元素. public void DelateNum(int num){ int t = SearchNum(num); if(t == -1){ System.out.println("需要删除的元素不在数组内!"); } else if(t == elems-1) { elems--; }else { for(int i = k;i<elems-1;i++){ Array[i] = Array[i+1] } elems--; } } //修改数组内的元素 public void Modify(int lastnum,int newnum){ int t = SearchNum(lastnum); if(t == -1){ System.out.println("需要修改的元素不在数组内!"); }else{ for(int i = 0;i<elems;i++){ if(Array[i]==lastnum){ Array[i]=newnum; } } } } public static void main(String[] args){ MyArray array = new MyArray(); array.AddNum(1); array.AddNum(2); array.AddNum(3); array.AddNum(4); array.AddNum(5); System.out.println("数组的长度为:" + array.getsize()); array.display(); array.getnum(3); System.out.println(array.SearchNum(3)); array.DelateNum(4); array.display(); System.out.println("删除后数组的长度为:" + array.getsize()); array.Modify(3, 8); array.display(); } }
最后我们测试的结果为
相关文章推荐
- 数据结构----数组(java实现代码)
- 数据结构(Java 快速排序模拟)本代码重在学习数据结构思路,代码完整性欠缺,请见谅
- 浅谈Java中数据在内存中的状态,以及String、StringBuffer、==、equals、数组等问题
- Java数据结构与算法--数组
- JAVA 根据数据库表内容生产树结构JSON数据的实例代码
- Java基础二(键盘录入数据、选择结构、方法、数组)
- 数据结构(java)_数组顺序查找
- Java代码探查hbase表结构及数据
- java主类结构、基本数据类型、 变量与常量、运算符、数据类型转换、代码注释与编码规范
- java 代码转换音频数据格式(字节数组转换)
- Java50道经典编程题:(三十六)数组移位 ——数据及循环结构的使用
- Java之数据结构基础、线性表、栈和队列、数组和字符串,树—学习笔记
- 看数据结构写代码(19) 数组的实现
- 浅谈Java中数据在内存中的状态,以及String、StringBuffer、==、equals、数组等问题
- linux i2c子系统代码分析1 ---概述以及主要数据结构
- BZOJ 1264 浅谈数据结构优化特殊形式LCS动态规划求法
- 【数据结构与算法】数组应用4:多项式计算Java版
- Java入门之数据结构(数组)
- 数据结构----链表(单向链表)(java实现代码)
- JAVA数据结构与算法-第二章-数组