队列的优化有三:
1.利用arraycopy(Object src,int srcPos,Object dest,int destPos,int length))方法复制数组。这样不用每一次对队列进行操作时都要新建一个队列来存储,再复制给原队列。
2.新建数组时,可以按比例(num)增加或减少队列的长度。
3.将数据类型从string类型扩展成为泛型。
运用:
优化1.2的应用举例:
删除指定的元素
public void delete(int index){
//判断索引是否越界
if(index<0||index>=this.size()){
System.out.println("没有找到指定的元素!");
}
//判断能否按定比num减少数组长度。
else if((this.size()-initnum)%num==1){
// 创建数组array2
Object[] array2 = new Object [array1.length-num];
// 将数组araay1中剩余的的元素赋值到数组array2中(分步复制)
System.arraycopy(array1,0,array2,0,index);
System.arraycopy(array1,index+1,array2,index+1,this.size()-index-1);
// 将数组array2赋给数组array1
array1 = array2;
}
else{
//直接删除array1中的元素
for (int i = 0; i < index; i++)
array1[i] = array1[i];
for (int i = index + 1; i < this.size()-1; i++)
array1[i - 1] = array1[i];
}
}
所犯错误:
当array1.size()<array1.length,直接插入一个元素时:
for (int i = 0; i < index; i++)
array1[i] = array1[i];
for (int i = index ; i <this.size(); i++){
array1[i+1] = array1[i]; }
1.当i为this.size()-1时,i+1为this.size(),有可能越界
2.此句表示将index为i的元素一直赋值给index后面的所有元素
疑点:
重载的构造方法怎样在ListTest中使用
public ListImp() {
}
public ListImp(int num) {
this.num = num;
}
public ListImp(int initNum, int num) {
this.initnum = initNum;
this.num = num;
}
总结tips:
1.测试方法时候一个一个来,便于发现错误
2.尽量申明局部变量
分享到:
相关推荐
JVM性能优化是提升Java应用效率的关键环节,涉及到内存管理、垃圾回收、线程调度等多个方面。以下是对"Java JVM及性能优化"和"Java性能分析"的详细阐述: 一、JVM结构与工作原理 1. 类装载器:负责加载类文件,确保...
hs_err_pid25734.log
### System.arraycopy实现数组之间的复制 在Java编程语言中,`System.arraycopy()`是一个非常实用且高效的方法,用于在数组之间复制元素。此方法属于`java.lang.System`类,并且是一个静态方法,这意味着可以直接...
i= JZSystem.readWriteMifare(JZSystem.MIFARE_PASSWORD_READ, buf, (short)0, (short)(AmbiqConstant.BLOCKS_PER_SECTOR*AmbiqConstant.SECTOR_NUM_OF_8+AmbiqConstant.BLOCK_NUM_OF_0)); if(i==0) ...
标题“实例183 - 自定义非泛型栈结构”涉及的是编程中的数据结构实现,具体是栈(Stack)这一概念。栈是一种线性数据结构,遵循“后进先出”(Last In First Out, LIFO)的原则。在这个实例中,我们将探讨如何不使用...
使用System.arraycopy()实现数组之间的复制
在Java编程中,优先队列(PriorityQueue)是一种特殊的队列,它按照元素的优先级进行出队。这种数据结构在实现多路归并排序(Multi-Merge Sort)时非常有用,因为它能有效地处理多个已排序的输入流,并将它们合并成...
Java 数组实现栈、队列和线性列表 Java 是一种广泛使用的编程语言,数组是 Java 中的一种基本数据结构。数组可以用来实现栈、队列和线性列表等数据结构。下面是使用 Java 数组实现栈、队列和线性列表的详细介绍。 ...
- **优化**: 使用`System.arraycopy()`方法可以一次性完成数组的复制,从而提高性能。 - **错误示例**: ```java int[] array1 = new int[100]; int[] array2 = new int[100]; for (int i = 0; i ; i++) { ...
`System.arraycopy` 和 `Arrays.copyOf` 都是Java中用于复制数组的方法,但它们在使用和处理异常情况上有所不同。这两个方法在处理数组复制时,提供了便利和效率,但各有其适用场景。 `System.arraycopy` 是一个...
System.arraycopy(data, 0, newData, 0, index); data = newData; } data[index++] = ele; } public int getCount() { return index; } @Override public boolean hasNext() { return index > 0; } ...
满足一些特殊需求 接口部分(队列支持需求) #import @interface XMQueue : NSObject ...- (NSArray *) arrayCopy; @end 实现方法 #import XMQueue.h @interface XMQueue() @property NSMutableArray *array; @pr
本文实例为大家分享了ios实现简易队列的具体代码,供大家参考,具体内容如下 满足一些特殊需求 接口部分(队列支持需求) #import @interface XMQueue : NSObject ///队列追加 - (void)add:(id) obj; ///队列取出 - ...
Java程序性能优化是提高应用程序效率的关键,特别是在处理大数据或高并发场景时。以下是一些针对Java性能优化的关键点,基于给定的文档内容: 1. 避免在循环条件中使用复杂表达式: 当循环条件包含复杂表达式时,...
1. **泛型类定义**:定义了一个名为`MyArray`的泛型类,其中包含一个`arraycopy`方法,该方法接受两个同类型的数组,并将第一个数组的内容复制到第二个数组中。 2. **主方法**:在`main`方法中创建了`MyArray`类的...
### Java代码性能优化总结 Java代码性能优化是一个广泛的领域,涉及多个方面,包括但不限于内存使用、循环效率、算法优化、集合框架使用等。本总结旨在汇总35个常见的Java代码性能优化技巧。 #### 1. 使用final...
标题:“Java程序优化大全.pdf”描述:“Java程序优化大全.pdf”标签:“技术及资料”内容:Java程序优化方面的内容,包含了对Java程序中常见问题的优化策略和方法。具体包括了对集合类的使用优化,如Vector的使用;...
【JAVA最佳性能优化】 在Java开发中,性能优化是一项至关重要的任务,因为它直接影响到应用程序的运行效率和用户体验。以下是一些关键的优化技巧,旨在帮助开发者提升Java程序的性能。 1. **方法内联和同步优化** ...
**优化说明**: `System.arraycopy()`方法提供了高效的数组复制功能,其内部实现利用了平台特定的优化技术。因此,相比于使用循环逐个复制数组元素,这种方法能够显著提高性能。 #### 五、让访问实例内变量的getter/...