`
java--hhf
  • 浏览: 308793 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java集合框架之自定义队列

阅读更多

    java集合框架最初是源自于数组,所以我们在学习java集合框架的时候一定不要脱离了数组的思想。数组的出现给了人们另一种新的对数据处理的认识观。

    我们知道,数组定义时必须指定长度,这就在一定程度上限制了数组的功能。于是集合框架就应运而生了,简单地说,现在我们要讲的自定义队列就是会变长的的数组。可以想象,实现这一功能是非常简单的,只要我们得到当前数组长度,然后根据这个数值新创建一个具有新的长度的数组,就可以了。

    自定义队列的主要思想就是上述所讲了,根据这个思想,现在我们就又可以多实现一些功能,比如:把一个数据插入到对列(数组)的第六号位置、删除第六号位置上的数据,,,

如下代码:

package hhf.自定义队列1020;

public class queue {
//创建一个最大众化的对象
	int [] list = new int[0];
//添加函数
	public void add(int i2){
//创建一个比原来数组大一号的新数组	
		int [] listnew = new int[list.length + 1];  
//添加数据到最后一位
		listnew[list.length] = i2;
//前面的空位全用list中原来的数据补充
		for(int i = 0; i< list.length; i++)
			listnew[i] = list[i];
//还给list指针
		list = listnew;
		
	} 
//删除一个元素
	public void delete(int index){
//如果不在数组里 就不要删除了
		if(index < 0 || index >= list.length)
			return;
//创建一个比原来数组短一号的数组	
		int [] listnew = new int[list.length - 1];  
//删除的那个号前的元素全部复制到新的数组	
		for(int i = 0; i< index; i++)
			listnew[i] = list[i];
//跳过那个元素,继续复制
		for(int i = index+1; i< list.length; i++)
			listnew[i-1] = list[i ];
//还给list	
		list = listnew;
	} 
//查找函数
    public int find(int index){
		return list[index];
	} 
//返回大小
	public int size(){
		return list.length;
	} 
}

 

 

我们现在相当于把数组封装起来了,创建了一个queue类,在类中提供了add,delete,find,size函数,使用的时候我们就创建一个queue类的对象,调用对象的方法,隐形的使用了数组。

如下面就是一种使用的方法

 

package hhf.自定义队列1020;

import java.util.Random;

public class test {
	public static void main(String[] args) {
//定义一个队列对象
		queue q_list = new queue();
//用随机数的方法来选择队列中元素的个数
		Random ran = new Random();
		int	size = ran.nextInt(20);
//用以个for循环添加队列元素
		System.out.println("一共有队列元素    "+size+"  个");
//添加元素
		for(int i = 0;i < size ; i++)
			q_list.add(i);
//打印队列元素
		for(int i = 0; i < q_list.size(); i++)
			System.out.println(q_list.find(i));
		System.out.println("============================");
//删除六号元素
		q_list.delete(6);
		System.out.println("删除第六号元素后一共有队列元素    "+q_list.size()+"  个");
//打印队列元素
		for(int i = 0; i < q_list.size(); i++)
			System.out.println(q_list.find(i));
	}

}

 有了这样的队列类使用起来就比较简单而且容易理解。

     当我们肯定了以上的思维后,我们再稍微做一点点拓展——可以改变数组里保存的数据类型。要实现这个功能也只需要稍微改变代码就可。

package hhf.自定义泛型1021;

public class Generics<E> {
//创建一个最大众化的对象
	Object [] list = new Object[0];
//添加函数	
	public void add(E i2){
//创建一个比原来数组大一号的新数组
		Object [] listnew = new Object[list.length + 1];  
//添加数据到最后一位
		listnew[list.length] = i2;
//前面的空位全用list中原来的数据补充
		for(int i = 0; i< list.length; i++)
			listnew[i] = list[i];
//还给list指针
		list = listnew;
	} 
//删除一个元素
	public void delete(int index){
//如果不在数组里 就不要删除了
		if(index < 0 || index > list.length)
		return;
//创建一个比原来数组短一号的数组	
		Object [] listnew = new Object[list.length - 1];  
//删除的那个号前的元素全部复制到新的数组	
		for(int i = 0; i< index; i++)
			listnew[i] = list[i];
//跳过那个元素,继续复制
		for(int i = index+1; i< list.length; i++)
			listnew[i-1] = list[i ];
//还给list	
		list = listnew;
	} 
//查找函数
	public Object find(int index){
		return list[index];		
	} 
//返回大小
	public int size(){
		return list.length;
	} 	
}

 我们发现只要将

 int [] list = new int[0];改为Object [] list = new Object[0];

 即,将数据类型改为Object,

 只要将public void add(int i2)改为public void add(E i2)

 即,将行参类型改为E  ,就可以了。

 

   那么在使用的时候也就相应发生了细微变化

   改queue q_list = new queue();为

     Generics<String> generics_list = new Generics<String>();在创建对象的时候给它指定类型就可以了。

   以上就是我给大家介绍的自定义队列,说白了,上面所述的队列也就是另一种升级版的数组了。

 

0
2
分享到:
评论

相关推荐

    java 自定义Queue队列

    在Java编程语言中,`Queue`接口是集合框架的一部分,它代表了先进先出(FIFO)的数据结构,也就是我们通常所说的队列。队列是一种非常基础且实用的数据结构,广泛应用于多线程同步、任务调度、缓存管理等多个场景。...

    集合框架学习笔记

    Java集合框架还包括Queue(队列)和Deque(双端队列)接口。Queue主要用于先进先出(FIFO)的数据结构,如ArrayDeque和LinkedList可以实现;Deque则扩展了Queue,允许在两端进行插入和删除,适用于栈和队列的场景。 ...

    数据结构和Java集合框架

    数据结构和Java集合框架是Java编程中至关重要的概念,它们是高效编程和算法设计的基础。在Java中,数据结构指的是组织、存储和管理数据的方式,而集合框架则是一组接口和类,为处理各种数据结构提供了统一的API。 ...

    一个讲解很清晰的Java集合框架PPT

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...

    Java集合框架培训资料

    Java集合框架是Java编程语言中的核心组件之一,它为数据存储和管理提供了丰富的类和接口。这个培训资料将深入探讨Java集合框架的各个方面,帮助开发者更有效地利用这些工具。 首先,我们要了解Java集合框架的基本...

    java自定义集合类

    自定义集合类则是开发者根据特定需求扩展Java集合框架的行为,以满足个性化或特定业务场景的功能需求。以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些...

    Java集合框架.pdf

    Java集合框架是Java编程语言中一个至关重要的组成部分,它为开发者提供了一套高效、类型安全且可扩展的数据结构和算法的集合。这个框架允许程序员处理各种类型的数据组织形式,包括列表、队列、集合和映射,极大地...

    JAVA集合框架

    在Java集合框架中,Comparator接口用于自定义元素的比较逻辑,如在TreeSet或TreeMap中指定排序规则。Comparable接口则用于对象自身定义比较规则,如自然排序。 7. **集合工具类** Collections类提供了一系列静态...

    java集合框架PPT

    Java集合框架是Java编程语言中一个至关重要的部分,它为数据存储和操作提供了丰富的类库。这个PPT作为培训教材,旨在深入解析Java集合框架的核心概念、接口和类,帮助学习者掌握其基本使用和高级特性。以下是Java...

    全面接触java集合框架(word版)

    Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一套统一的接口和实现。这个框架包括各种接口、类和算法,使得开发者能够更加高效地处理对象集合,而无需关注底层数据结构的实现细节。...

    Java-collection-frame.rar_Java集合框架

    Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储、管理和操作提供了丰富的类库。这个框架包括了各种接口、类以及实现,使得开发者能够高效地处理对象的集合,无论是小型还是大型数据集。在Java...

    全面接触Java集合框架

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架包括了各种接口和类,它们为开发者提供了多种数据结构,如数组、链表、队列、堆栈、映射等。下面将详细探讨...

    java集合框架全面进阶[归纳].pdf

    Java集合框架是Java编程语言中的核心部分,它提供了一种高效、灵活的方式来组织和操作数据。这个框架包括一系列接口和类,它们定义了各种数据结构,如列表(List)、集(Set)、映射(Map)以及其他的集合类型。通过学习这...

    浅谈JAVA集合框架及其应用.zip

    Java集合框架还包括了一些其他接口和类,如`Queue`(队列)、`Deque`(双端队列)、`PriorityQueue`(优先队列)等,它们各自支持特定的数据操作和行为。 在实际应用中,选择合适的集合类型取决于具体的需求。例如...

    JAVA集合框架1.pdf

    综上所述,Java集合框架为处理各种数据集合提供了一套完整的解决方案。通过掌握这些接口和类的使用,开发者可以高效地编写出稳定和高质量的代码。在实际开发中,合理使用集合框架不仅可以提高程序的性能,还可以让...

    20个最佳的Java集合框架面试题目.zip

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。面试中,Java集合框架的题目通常会测试应聘者对数据结构、算法以及API的理解。以下是对Java集合框架的一些核心知识...

    Java集合框架的知识总结.doc

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理对象。本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **...

Global site tag (gtag.js) - Google Analytics