java实现无序数组结构
一、数组的2种定义方式
数据类型 [] 数组名称 =
new
数据类型[数组长度];
这里 [] 可以放在数组名称的前面,也可以放在数组名称的后面,一般放在名称的前面
数据类型 [] 数组名称 = {数组元素
1
,数组元素
2
,......}
这种方式声明数组的同时直接给定了数组的元素,数组的大小有给定的数组元素个数决定
public class ArrayStruct { public static void main(String[] args) { // int[] nums = new int[10]; // int nums[] = new int[10]; // nums = initArray( nums ); // int[] nums = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; int nums[] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; printArray( nums ); } public static int[] initArray( int[] arr ){ for( int i = 0; i < arr.length; i++ ){ arr[i] = i * 10; } return arr; } public static void printArray( int[] arr ){ for( int i = 0; i < arr.length; i++ ){ System.out.print( arr[i] + "\t" ); } System.out.println(); } }
二,实现一个自定义的数组结构,包含以下基本操作:
>插入数据
>删除数据
>查找数据
>遍历数据等
package com.ghostwu; class MyDefineArrayStruct { private int[] arr; private int curLen; private int length; public MyDefineArrayStruct(){ curLen = 0; length = 30; arr = new int[length]; } public MyDefineArrayStruct( int _length ) { curLen = 0; length = _length; arr = new int[length]; } public int length (){ return curLen; } public void print(){ for( int i = 0; i < curLen; i++ ){ System.out.print( arr[i] + "\t" ); } System.out.println( ); } public boolean add( int _value ){ if( curLen >= length ){ return false; }else{ arr[curLen++] = _value; } return true; } public int getItem( int _index ){ if( _index < 0 || _index > curLen ) { System.out.println( "数组下标越界" ); } return arr[_index]; } public int find( int _value ){ int i; for( i = 0; i < curLen; i++ ){ if( arr[i] == _value ){ break; } } if( i == curLen ) { return -1; } return i; } public boolean delItem( int _value ){ int res = find( _value ); if( res == -1 ) return false; else { if( res == curLen - 1 ) { curLen--; }else { for( int i = res; i < curLen - 1; i++ ){ arr[i] = arr[i+1]; } curLen--; } } return true; } public boolean updateItem( int _oldValue, int _newValue ){ int res = find( _oldValue ); if( res == -1 ){ System.out.println( "数组中不存在" + _oldValue ); return false; }else{ arr[res] = _newValue; return true; } } } public class SelfDefineArrayStruct { public static void main(String[] args) { MyDefineArrayStruct arr = new MyDefineArrayStruct( 10 ); arr.print(); arr.add( 10 ); arr.add( 20 ); arr.add( 30 ); arr.add( 40 ); arr.add( 100 ); arr.print(); arr.delItem( 10 ); arr.print(); System.out.println( arr.length() ); arr.delItem( 20 ); System.out.println( arr.length() ); arr.updateItem( 30, 300 ); arr.updateItem( 40, 400 ); System.out.println( arr.length() ); arr.print(); } }
作者:ghostwu, 出处:http://www.cnblogs.com/ghostwu
博客大多数文章均属原创,欢迎转载,且在文章页面明显位置给出原文连接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架