在C语言中我们经常用数组处理大数问题,在java中数组功能逐渐被ArrayList类代替,强大的ArrayList类提供了clear(),equals()等32个方法,所以我们能轻松实现各种类的构造,以下代码将提供VeryLongInt类的设计:
output:
11114532632462523462362547457357
3704845646029468841285610955774783288521573545337081737305179
附几点ArrayList类与数组的几点区别:
1,当构造数组时必须指定初始容量,但是ArrayList不需要,ArrayList类提供了三种构造方法,以便于你选择是否需要指定初始容量。
2,在数组中插入元素时,必须指定索引值,而在ArrayList类中的add()方法则自动选择在ArrayList对象的末尾插入元素。
3,ArrayList类中的size()方法返回ArrayList对象中元素个数,而数组中的length字段则保存了数组可以插入的元素的最大值。
4,ArrayList类中的set()方法可以更改指定索引位置的元素,类似与数组中的直接赋值。
5,ArrayList类中的remove()方法可以删除指定索引位置的元素,而且时间复杂度为O(1),而数组中实现这一功能则需要移动所删元素的后半段空间。
6,在数组中查找是否具有某一元素需要进行显式搜索,而在ArrayList类中只需一个indexOf()方法即可搞定。
当然,数组在一些地方依然有着ArrayList类无法替代的位置:
1,索引运算符可以用来访问或者修改数组中的元素。
2,数组可以在构造的时候进行初始化。
3,我们可以在数组的任意索引位置存储元素,但是对于ArrayList对象,只能在索引值为0、1、....、size()的位置存储元素。
4,可以创建任意类型(甚至是原始类型,例如int)的数组。对于ArrayList对象,每个元素的类型必须是Object或其子类。