`
ttsecret
  • 浏览: 4049 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

数组、自定义队列

J# 
阅读更多
一维数组的定义:
     1)数据类型  数组名[] = new 数据类型[长度];
  
    2)数据类型  数组名[] = {...};

    3)数据类型 数组名[] = new 数据类型[]{...};或
       数据类型 数组名[];
      数组名 = new 数据类型[长度];

二维数组的定义:
     1)数据类型 数组名[][] = new 数据类型[长度1][长度2];

    2)数据类型 数组名[][] = {...}{...};
   
    3)数据类型 数组名[][] = new 数据类型[][]{...}{...};

与数组相比,自定义队列相对就有更强的扩充性,可以向队列中无限制的加入自己定义的类型。自定义队列实质是自己定义的一个的一个类,类中有一个public类型的数组,并定义对这个数组进行增删查等方法。
package cn.javanet.array;
/**
 * 自定义队列:可以无限制的向队列中添加数据
 * 
 * @author  */
public class NetjavaList {
    //创建一个数组
	public int arrayone[]=new int [0];
	
	/**
	 * 返回自定义队列的长度
	 * @return 长度
	 */
	public int size(){
		return arrayone.length;
	}
	
	/**
	 * 得到指定位置的索引
	 * @param index:指定的索引位
	 * @return:返回指定索引的元素值
	 */
	public int get (int index){
		return arrayone[index];
	}
	
	/**
	 * 在数组的末尾添加一个元素
	 * a:添加的元素
	 */
	public void addone(int a){
		//重新创建一个数组
		int arraytwo[]= new int [arrayone.length+1];
		//讲原数组的值一一赋给新数组
		for(int i=0;i<arrayone.length;i++){
			arraytwo[i]=arrayone[i];
		}
		//将a插入新数组的末尾
		arraytwo[arrayone.length]=a;
		//讲新数组赋给arrayone
		arrayone=arraytwo;
	}
	
	/**
	 * 在指定位置添加指定的数据
	 * @param add:添加的元素值
	 * @param index:指定添加的位置
	 */
	public void add(int add,int index){
		//重新创建一个数组
		int array3[]=new int [arrayone.length+1];
		//将索引值前面的数据先赋给新数组
		for(int i=0;i<arrayone[index];i++){
			array3[i]=arrayone[i];
		}
		//加入add,并将剩下的元素一一赋值
		array3[index]=add;
		for(int i=index;i<arrayone.length;i++){
			array3[i+1]=arrayone[i];
		}
		//将新建的数组赋给arrayone
		arrayone=array3;
		
	}
	
	/**
	 * 将指定位置的元素移除
	 * @param index:指定的位置
	 */
	public void remove(int index){
		//新建一个数组
		int array4 []=new int [arrayone.length-1];
		//将索引值前面的数据先赋给新数组
		for(int i=0;i<arrayone[index];i++){
			array4[i]=arrayone[i];
		}
		//将索引值后面的数据赋给新数组
		for(int i=index+1;i<arrayone.length;i++){
			array4[i-1]=arrayone[i];
		}
		//将新建的数组赋给arrayone
		arrayone=array4;
	}
	
	/**
	 * 移除指定的内容
	 * @param a:移除的内容
	 */
	public void remove2(int a){
		int j=0;
		//新建一个数组
		int array5 []=new int [arrayone.length];
		//移除掉a
		for(int i=0;i<arrayone.length;i++){
			if(arrayone[i]!=a)
				{array5[j]=arrayone[i];
				 j++;
				}
		}
		//将新建的数组赋给arrayone
		arrayone=array5;
	}
	
	
}
分享到:
评论

相关推荐

    用数组实现的优先队列(JAVA)

    - 构造函数:初始化空的优先队列,可能包括默认容量的构造函数和自定义容量的构造函数。 - 插入方法:如`add(int val)`,将元素插入到队列的末尾并调整堆。 - 删除方法:如`remove()`,删除并返回队首元素,然后...

    数组和队列反转

    但如果你想自定义队列,你可以创建一个类,包含一个数组作为底层数据结构,并实现添加元素(Enqueue)、移除元素(Dequeue)以及检查队首元素(Peek)等方法。以下是一个简单的自定义队列的C#实现: ```csharp ...

    【JavaScript源代码】Nodejs 数组的队列以及forEach的应用详解.docx

    因此,要确保遍历到所有有效元素,可以自定义数组的`prototype`,如添加`validnum`属性来表示有效元素的数量。 ```javascript arr = [1, 2, 3]; delete arr[2]; arr.validnum = 2; arr.forEach(function(item, ...

    数据结构(数组型队列),内含源代码和教程MyDeque_Demo。支持自定义数据类型,支持访问队列中的任意元素。

    数据结构(数组型队列),内含源代码和教程MyDeque_Demo。支持自定义数据类型,支持访问队列中的任意元素。 使用教程参见 http://blog.csdn.net/michaelliang12/article/details/51325801

    Java版数据结构代码,栈,动态数组,队列,链表,二叉树

    本资源提供了Java实现的数据结构代码,包括栈、动态数组、队列、链表和二叉树,这些都是计算机科学中最基础且重要的数据结构。 1. **栈(Stack)**:栈是一种“后进先出”(LIFO)的数据结构,常用于表达式求值、...

    java大作业用数组进行队列排序

    在Java编程中,大作业通常涉及实际应用中的问题解决,这次的任务是利用数组实现一个队列排序,并且能够动态地插入新的元素。这个任务主要涵盖了两个核心知识点:数组的使用和排序算法。下面将详细解释这两个方面。 ...

    用数组实现的双端队列(类模板)

    在C++中,标准库提供了一个名为`deque`的容器,但在这里,我们讨论的是一个自定义实现的基于数组的双端队列类模板。 在C++编程中,类模板(Class Template)是泛型编程的一种形式,允许创建可适用于不同数据类型的...

    索引队列-C#中的自定义队列

    标题 "索引队列-C#中的自定义队列" 指向了一个特定的数据结构实现,即在C#编程环境中创建一个支持索引访问的队列。在标准的`System.Collections.Generic.Queue&lt;T&gt;`类中,元素只能通过入队(Enqueue)和出队...

    數據結構(C#語言版)

    11. **队列实现(LinkedList&lt;T&gt; 和 Queue)**:虽然C#提供了内置的队列实现,但学习如何用链表或数组自定义队列有助于理解其底层工作原理。 12. **优先队列(PriorityQueue)**:优先队列按照优先级顺序处理元素,...

    java双端队列的实现-Java实现自定义双端队列(链表和数组两种方式) 数组和链表.pdf

    Java 双端队列的实现 Java 中的双端队列(Deque)是一种特殊的队列,能够在队列的两端进行元素的添加和删除...Java 实现自定义双端队列可以通过链表和数组两种方式实现,双端队列可以充当单端队列,也可以用于充当栈。

    泛型顺序队列和循环队列

    在C#中,我们可以通过自定义类来实现泛型循环队列,通常需要维护两个指针,一个指向队首,一个指向队尾,同时管理数组的边界条件。 在本实例中,不仅展示了如何创建和操作这两种队列,还演示了队列中元素的变化过程...

    数据结构,队列的实现,包括链式和数组式

    在C++中,可以使用STL(标准模板库)中的`std::queue`容器来实现队列,但如果你想要自定义队列的实现,可以创建一个类,包含队列操作的方法如`enqueue`、`dequeue`等,并使用上述的链表或数组来存储元素。...

    C++循环队列模版(数组和链表两种实现方式都有)

    对于循环队列,我们可以定义一个模板类,让其能适应不同类型的数据,如int、float、自定义对象等。模板类的定义会包括前面提到的基本操作函数,如enqueue、dequeue、isFull、isEmpty等,同时在内部使用模板参数来...

    实例185 - 自定义泛型化数组类

    这个实例185可能是进一步讨论泛型数组类如何应用于实际项目,例如作为缓存、队列或其他数据结构的基础,或者作为工具类帮助处理不同类型的数据集。标签中的"源码"表明可能有具体的代码实现供学习,而"工具"可能意味...

    custom_queue:通用对象的自定义队列实现

    `custom_queue`项目旨在提供一个通用的对象自定义队列实现,它允许开发者根据具体需求定制队列的行为,例如添加特殊操作、同步机制或优化性能。该项目依赖于GSON、Google的异步库以及Jackson Core,这些库分别用于...

    [原创] SV中数组代码实践笔记

    数组还可以有自定义的方法,增加其可操作性。 7. **数组的并行操作**:在SV中,数组元素可以被并行处理,这对于实现高效的硬件算法至关重要。例如,可以使用`foreach`循环来并行处理数组的每个元素。 8. **队列...

    自定义的栈与队列

    自定义队列的实现方式有: 1. 双端队列(Deque):可以同时在两端进行入队和出队操作,例如C++中的`std::deque`。 2. 链表:使用链表,入队在尾部插入节点,出队则删除头部节点。 3. 循环数组:当数组满时,通过循环...

    数据结构队列C++

    自定义队列通常涉及以下关键组件和操作: 1. **初始化**:创建队列时,需要设置一个初始容量或默认为空。 2. **入队**:在队列末尾添加元素。这可以通过动态数组或链表来实现,确保在达到容量限制时能自动扩展。 3....

    自定义双端队列

    所谓双端队列(double-ended queue,deque),就是在...使用循环数组方式实现双端队列,要求实现上述操作,并实现一个Print输出操作, 能将队列由左至右的次序输出于一行,元素间用空格间隔。队列元素类型设为整型。

    易语言源码易语言自定义数据类型的内存存储方式.rar

    易语言源码易语言自定义数据类型的内存存储方式.rar 易语言源码易语言自定义数据类型的内存存储方式.rar 易语言源码易语言自定义数据类型的内存存储方式.rar 易语言源码易语言自定义数据类型的内存存储方式.rar ...

Global site tag (gtag.js) - Google Analytics