0
点赞
收藏
分享

微信扫一扫

日撸 Java 三百行学习笔记day23

司马吹风 2022-04-05 阅读 43
java

第 23 天: 使用具有通用性的队列

今天相当于是一个对于队列的升级吧,又是学习新知识的一天,从专一类型所用的队列升级为通用类型的。程序的架构也就是说对于数据的操作感觉差不多,但是不同的是这个方式提高了代码的复用性,减少了代码量,用途更为广泛。直接上核心code先

public void toDataArraysObjectQueue() {
// Initialize arrays.
int tempLength = getNumNodes();

valuesArray = new char[tempLength];
indicesArray = new int[tempLength];
int i = 0;

// Traverse and convert at the same time.
CircleObjectQueue tempQueue = new CircleObjectQueue();
tempQueue.enqueue(this);
CircleObjectQueue tempIntQueue = new CircleObjectQueue();
Integer tempIndexInteger = Integer.valueOf(0);
tempIntQueue.enqueue(tempIndexInteger);

BinaryCharTree tempTree = (BinaryCharTree) tempQueue.dequeue();
int tempIndex = ((Integer) tempIntQueue.dequeue()).intValue();
System.out.println("tempIndex = " + tempIndex);
while (tempTree != null) {
valuesArray[i] = tempTree.value;
indicesArray[i] = tempIndex;
i++;

if (tempTree.leftChild != null) {
tempQueue.enqueue(tempTree.leftChild);
tempIntQueue.enqueue(Integer.valueOf(tempIndex * 2 + 1));
} // Of if

if (tempTree.rightChild != null) {
tempQueue.enqueue(tempTree.rightChild);
tempIntQueue.enqueue(Integer.valueOf(tempIndex * 2 + 2));
} // Of if

tempTree = (BinaryCharTree) tempQueue.dequeue();
if (tempTree == null) {
break;
}//Of if

tempIndex = ((Integer) tempIntQueue.dequeue()).intValue();
} // Of while
}// Of toDataArraysObjectQueue

这里面的涉及到封装以及一些函数的用法,这都是以前很少接触到的,所以在第一次看来略显头疼。

对于valueOf():

valueOf()函数用于返回指定对象的原始值

该方法属于Object对象,由于所有的对象都"继承"了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。

对于intValue():

1.intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。也就是说,不单是Integer有intValue方法,Double,Long等都有此方法。 
2.此方法的意思是:输出int数据。每个数值类中具体的实现是不同的。例如: 
Float类和Double类的intValue方法,就是丢掉了小数位,而Long的intValue方法又不一样的。
 

举报

相关推荐

0 条评论