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();
}
}
java实现无序数组结构的更多相关文章
- Java算法-------无序数组中的最长连续序列---------leetcode128
Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...
- 对无序数组的并发搜索的java实现
对无序数组的并发搜索的实现可以充分的用到多cpu的优势 一种简单的策略是将原始数组按照期望的线程数进行分割,如果我们计划使用两个线程进行搜索,就可以把一个数组分成两个,每个线程各自独立的搜索,当其中有 ...
- java面向对象的有序数组和无序数组的比较
package aa; class Array{ //定义一个有序数组 private long[] a; //定义数组长度 private int nElems; //构造函数初始化 public ...
- Java中的数组与集合
此文转载自:http://student-lp.iteye.com/blog/2082362 在java编程的过程中,我们不能确定某一类型的对象到底会需要多少,为了解决这个问题,java提供了容纳对象 ...
- Atitit java的异常exception 结构Throwable类
Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...
- 无序数组a,求a[i]-a[j]的最大值,且i<j
一道面试题:对于无序数组a,求a[i]-a[j]的最大值,其中i<j package test; import java.util.Arrays; public class FindMax { ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
- Java基础总结--数组
---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...
- Java开发知识之Java中的Map结构
Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...
随机推荐
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- 自定义滚动条样式(layui.v1)
来源于 layui css 代码 ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-button, ::-w ...
- DVWA 1.9 通关秘籍
DVWA 1.9 通关秘籍 本文来源:i春秋社区-分享你的技术,为安全加点温度 DVWA (Dam Vulnerable Web Application) DVWA是用PHP+Mysql编写 ...
- Java 利用枚举封装接口返回 JSON 结构
利用枚举封装返回码和返回信息 package com.template.project.util; public enum StatusCode { SUCCESS(20000, "成功&q ...
- 安装MySQL提示“请键入 NET HELPMSG 3534 以获得更多的帮助”的解决办法
今天安装MySQL提示如下错误: ----------------------------------------------------------------------------------- ...
- Core 读取配置文件
新建控制台 static void Main(string[] args) { Console.WriteLine("Hello World!"); //获取应用程序的当前工作目录 ...
- SVN切换账号
问题背景 SVN账号在登录的时候,默认是保存在个人电脑的 C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple\ 目录下的 ...
- [linux]解析crontab
linux提供了一个非常强大而且又比较好用的命令 [crontab] crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行, ...
- 利用max-height适应多尺寸屏幕的下拉动画
移动设备的特点之一便是屏幕尺寸多种多样,所以我们在制作针对移动设备的动画时必须不同尺寸屏幕的兼容性.比如我们要制作以下动画:红框2为详细内容,默认收起:红框1处为事件响应热区,点击后展开或收起红框2的 ...
- mysql 开发基础系列5 运算符
1. 算术运算符 2.比较运算符 注意NULL值不能用= 运算符 SELECT * FROM t WHERE c =NULL; -- 需要改成 SELECT * FROM t WHERE c IS N ...