封装自定义数组类(java版)

package com.huowolf.test;

public class MyOrderedArray {
		private long[] arr;

		//数组中有效元素的多少
		private int elems;

		public MyOrderedArray() {
			arr = new long[50];
		}

		public MyOrderedArray(int length) {
			arr = new long[length];
		}

		//插入数据
		public void insert(long value) {
			int i;
			for ( i = 0; i < elems; i++) {
				if(arr[i]>value)  break;
			}

			for(int j = elems; j > i; j--) {
				arr[j] = arr[j-1];
			}
			arr[i] = value;
			elems++;
		}

		//显示数据
		public void display() {
			for (int i = 0; i < elems; i++) {
				System.out.print(arr[i]+" ");
			}
			System.out.println();
		}

		//查找数据 (线性查找)
		public int find(long searchValue) {
			int i;
			for ( i = 0; i < elems; i++) {
				if(arr[i] == searchValue) 	break;
			}

			if(i == elems)
					return -1;
			else
					return i;
		}

		//二分查找
		public int binaryFind(long searchValue) {
			int left,right,mid;
			left = 0;
			right = elems;
			while(left <= right)
			{
				mid = (left+right) /2;
				if(arr[mid] > searchValue) {
					right = mid -1;		//调整右边界
				}else if(arr[mid] < searchValue) {
						left = mid+1;	//调整左边界
					}
				else return mid;
			}
			return -1;
		}

		//删除数据
		public void delete(long deleteValue){
			if(find(deleteValue) == -1) {
				System.out.println("查找不到指定数据,删除失败");
			}else {
				for (int i = find(deleteValue); i < elems; i++) {
					arr[i] = arr[i+1];
				}
				elems--;
			}
		}

		//修改数据
		public void change(long oldValue,long newValue) {
			if(find(oldValue) == -1) {
				System.out.println("查找不到指定数据,修改失败");
			}else {
				arr[find(oldValue)] = newValue;
			}
		}

}

时间: 2025-01-01 23:26:05

封装自定义数组类(java版)的相关文章

C++ 运算符重载四(自定义数组类)

//自定义数组类 #include<iostream> using namespace std; //分析:能获取数组长度,添加元素,删除元素,修改元素 //要求重载[],=,==,!=运算符 class MyArray { private: int mLength; int* mSpace; public: MyArray(int length){ cout << "有参构造函数被调用了1" << endl; mLength = length; m

一 自定义数组类

用类封装一个数组以及对数组的增删改查的操作. 源代码: public class Myarray { private int[] array; //创建数组 private int element; //有效数据长度 public Myarray() { // TODO Auto-generated constructor stub array = new int[50]; } public Myarray(int Maxsize) //重载构造方法 { array = new int[Maxs

二维码生成工具类java版

注意:这里我不提供所需jar包的路径,我会把所有引用的jar包显示出来,大家自行Google package com.net.util; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import java.a

封装动态数组类Array

功能: 1.增.删.改.查 2.扩容.缩容 3.复杂度分析 4.均摊复杂度 5.复杂度震荡 分析动态数组的时间复杂度: 分析resize的时间复杂度: public class Array<E> { private E[] data; private int size; // 构造函数,传入数组的容量capacity构造Array public Array(int capacity){ data = (E[])new Object[capacity]; size = 0; } // 无参数的构

自定义数组类

头文件: #ifndef ZARRAY_H #define ZARRAY_H class ZArray { private: int *m_pointer; int m_length; public: ZArray(int length); ~ZArray(); volatile bool state; int length(); bool get(int index,int& value); bool set(int index,int value); }; #endif // ZARRAY_

4 C++基础4 类 const函数 转全局函数 返回*this 数组类。友元 函数 类 操作符重载

1,请问类中函数 const修饰的谁? [email protected]:~/c++$ cat main.cpp  #include <iostream> #include <stdlib.h> using namespace std; class A { public: //const的三种写法 //const void fun(int a,int b) //void const fun(int a,int b) //void fun(int a,int b) const vo

玩玩微信公众号Java版之四:自定义公众号菜单

序: 微信公众号基本的菜单很难满足个性化及多功能的实现,那么微信能否实现自定菜单呢,具体的功能又如何去实现么?下面就来学习一下微信自定义公众号菜单吧! 自定义菜单接口可实现多种类型按钮,如下: 1.click:点击推事件用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互:2.view:跳转URL用户点击view类型按钮后,微信客户端将会打开开发者在按钮中

Java中的自定义数组队列

在Java中,作为所有数据结构中存储和获取速度最快的一种,数组凭借其这种简单易用的优势在各个方面都能大显神威.但是数组也有自身的局限性.数组的长度必须是固定的一旦定义之后就无法动态的更改,这就会造成这样的问题,如果数组已满,就无法继续添加数据(当然你可以定义一个"足够大的数组",但问题是多大才是足够大呢?太小不够,太大浪费内存空间).如果删除一个数据,它的内存空间空着没有被使用.另外数组只能存储同一类型的数据,如果把它设置成Object类型的话,是可以存不同类型的数据了,但是设想这样一

JAVA中封装JSONUtils工具类及使用

在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. 封装后的JSON工具类JSONUtils.java代码如下: JSONUtils代码,点击展开 import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Itera