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>();在创建对象的时候给它指定类型就可以了。
以上就是我给大家介绍的自定义队列,说白了,上面所述的队列也就是另一种升级版的数组了。
分享到:
相关推荐
在Java编程语言中,`Queue`接口是集合框架的一部分,它代表了先进先出(FIFO)的数据结构,也就是我们通常所说的队列。队列是一种非常基础且实用的数据结构,广泛应用于多线程同步、任务调度、缓存管理等多个场景。...
Java集合框架还包括Queue(队列)和Deque(双端队列)接口。Queue主要用于先进先出(FIFO)的数据结构,如ArrayDeque和LinkedList可以实现;Deque则扩展了Queue,允许在两端进行插入和删除,适用于栈和队列的场景。 ...
数据结构和Java集合框架是Java编程中至关重要的概念,它们是高效编程和算法设计的基础。在Java中,数据结构指的是组织、存储和管理数据的方式,而集合框架则是一组接口和类,为处理各种数据结构提供了统一的API。 ...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...
Java集合框架是Java编程语言中的核心组件之一,它为数据存储和管理提供了丰富的类和接口。这个培训资料将深入探讨Java集合框架的各个方面,帮助开发者更有效地利用这些工具。 首先,我们要了解Java集合框架的基本...
自定义集合类则是开发者根据特定需求扩展Java集合框架的行为,以满足个性化或特定业务场景的功能需求。以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为开发者提供了一套高效、类型安全且可扩展的数据结构和算法的集合。这个框架允许程序员处理各种类型的数据组织形式,包括列表、队列、集合和映射,极大地...
在Java集合框架中,Comparator接口用于自定义元素的比较逻辑,如在TreeSet或TreeMap中指定排序规则。Comparable接口则用于对象自身定义比较规则,如自然排序。 7. **集合工具类** Collections类提供了一系列静态...
Java集合框架是Java编程语言中一个至关重要的部分,它为数据存储和操作提供了丰富的类库。这个PPT作为培训教材,旨在深入解析Java集合框架的核心概念、接口和类,帮助学习者掌握其基本使用和高级特性。以下是Java...
Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一套统一的接口和实现。这个框架包括各种接口、类和算法,使得开发者能够更加高效地处理对象集合,而无需关注底层数据结构的实现细节。...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储、管理和操作提供了丰富的类库。这个框架包括了各种接口、类以及实现,使得开发者能够高效地处理对象的集合,无论是小型还是大型数据集。在Java...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架包括了各种接口和类,它们为开发者提供了多种数据结构,如数组、链表、队列、堆栈、映射等。下面将详细探讨...
Java集合框架是Java编程语言中的核心部分,它提供了一种高效、灵活的方式来组织和操作数据。这个框架包括一系列接口和类,它们定义了各种数据结构,如列表(List)、集(Set)、映射(Map)以及其他的集合类型。通过学习这...
Java集合框架还包括了一些其他接口和类,如`Queue`(队列)、`Deque`(双端队列)、`PriorityQueue`(优先队列)等,它们各自支持特定的数据操作和行为。 在实际应用中,选择合适的集合类型取决于具体的需求。例如...
综上所述,Java集合框架为处理各种数据集合提供了一套完整的解决方案。通过掌握这些接口和类的使用,开发者可以高效地编写出稳定和高质量的代码。在实际开发中,合理使用集合框架不仅可以提高程序的性能,还可以让...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。面试中,Java集合框架的题目通常会测试应聘者对数据结构、算法以及API的理解。以下是对Java集合框架的一些核心知识...
Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理对象。本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **...