0
点赞
收藏
分享

微信扫一扫

日撸 Java 三百行学习笔记day23

司马吹风 2022-04-05 阅读 44
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 条评论