小编给大家分享一下java数据结构和算法中数组的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
我随意借了一张图,所谓的数据结构就是下面这些
1.数组的基本用法
对于数组应该很熟悉了,最开始学完java八种基本类型之后下一个就是学的数组,数组最大的特点就是除了Object数组之外,其他的数组只能存放同一种数据类型,而且我们一开始指定数组就要指定确定的长度,一旦插入的数据超过这个长度,就会报错,其实就是因为数组的缺点太大,于是就根据数组的基础设计出来了集合,集合后面说。。
两种用法,以Object数组为例,这个数组可以随意放什么东西,然后用Arrays.toString(xxx)可以打印数组中的所有元素;
任何数据类型都有与之对应的数组,比如int[],String[],boolean[]等等
2.简单实现对数组的增删改查
·用数组的比较麻烦,还要一个一个慢慢赋值,对我们操作数据也不是很方便,那我们就随意实现一下我们自己的数组最简单的增删改查吧!
package com.wyq.thread;
public class MyArray {
private int[] arr;
//数组中当前存有数据的个数,也叫做数组的有效长度
private int eles;
//数组中可容纳最大的数量
private int length;
//注意这两个构造器,在无参构造中调用有参构造并设置默认的数组长度
public MyArray() {
this(10);
}
public MyArray(int length){
eles = 0;
this.length = length;
arr = new int[length];
}
//获取当前数组存的实际数据的数量
public int size(){
return eles;
}
//展示当前数组中的数据
public void show(){
System.out.print("数组中所有的数分别为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
//向数组中添加数据
public boolean add(int num){
//假如当前数组已经满了还往里面添加数据,那就抛出异常并返回false,后续操作还是会继续
//这里就没怎么考虑给这个数组扩容
if (length==eles) {
try {
throw new Exception("不好意思,数组已经满了,你还是别存了!");
} catch (Exception e) {
e.printStackTrace();
}
return false;
}else{
arr[eles] = num;
eles++;
return true;
}
}
//在数组中查有没有一个xxx数据,有就返回其索引值,没有的话就返回null,其实也可以捕捉异常,可以自己试试
public Integer find(int value){
if (arr!=null) {
for (int i = 0; i < arr.length; i++) {
if (arr[i]==value) {
return i;
}
}
}
return null;
}
//删除数组中的xx数据,这里会进行很多的判断,可以说这个方法是数组中最麻烦的方法了
//1.先调用查询方法看数组中有没有我们要删除的数据,没有直接返回-1,有的话就进入第二步
//2.如果这个要删除的数据在数组最后,那就直接将数组有效长度减一即可,如果不在最后,进入第三步
//3.一个数组要删除中间的个位置,不可能直接将这个数据复制为0或者null,我们只需要把这个位置的后面所有数据都向前
// 移动一个位置即可,这时数组的最后一个位置就空出来了,我们再把数组的有效长度减一就行了
public int delete(int value){
Integer find = find(value);
if (find!=null) {
if (find==eles-1) {
eles--;
}else{
for (int i = find; i < arr.length-1; i++) {
if (arr[i]==value) {
arr[i]=arr[i+1];
}
}
eles--;
}
}
return -1;
}
//更新数据,先调用查询方法找到这个数据所在位置,然后直接赋值即可
public boolean update(int index,int value){
Integer find = find(index);
if (find!=null) {
arr[index]=value;
return true;
}
return false;
}
public static void main(String[] args) {
//由于没有指定数组长度,就会用默认的10
MyArray array = new MyArray();
for (int i = 0; i < 10; i++) {
array.add(i);
}
//注意,此时由于数组满了我们还添加数据,就会报异常
array.add(222);
array.show();
array.delete(5);
System.out.println("删除数据后数组的实际大小:"+array.size());
array.add(100);
array.update(0, 10);
array.find(9);
array.show();
}
}
以上是“java数据结构和算法中数组的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。