在java中将元素推送到向量

在java中将元素推送到向量,java,vector,biginteger,Java,Vector,Biginteger,我正在用Java编写自己的自定义BigInteger类,并希望在类的构造函数中解析整数。所以问题是,我怎样才能把n的每一位数字正确地加到向量上,保持正确的顺序?换句话说,我如何将每个数字添加到堆栈中,就像将它们添加到堆栈中一样 例如,对于n=1234我需要将其像1234一样添加到向量中 这就是我已经拥有的: class VeryLong { Vector<Integer> A = new Vector<Integer>(); VeryLong(int n

我正在用Java编写自己的自定义BigInteger类,并希望在类的构造函数中解析整数。所以问题是,我怎样才能把n的每一位数字正确地加到向量上,保持正确的顺序?换句话说,我如何将每个数字添加到堆栈中,就像将它们添加到堆栈中一样

例如,对于
n=1234
我需要将其像1234一样添加到向量中

这就是我已经拥有的:

class VeryLong {
    Vector<Integer> A = new Vector<Integer>();

    VeryLong(int n) {
        while (n > 0) {
            // A.push(n % 10)
            n /= 10;
        }
    }
class VeryLong{
向量A=新向量();
维隆(国际北){
而(n>0){
//A.推送(n%10)
n/=10;
}
}
还有一个问题,我需要重载该类的构造函数以从int和long创建VeryLong的实例。以下是我的代码:

    private ArrayList<Long> A = new ArrayList<>();

    private VeryLong(int n) {
        while (n > 0) {
            A.add(long()(n % 10));
            n /= 10;
        }

        while (!A.isEmpty()) {
            System.out.println(A.get(0));
            A.remove(0);
        }
    }

    private VeryLong(long n) {
        while (n > 0) {
            A.add(n % 10);
            n /= 10;
        }

        while (!A.isEmpty()) {
            System.out.println(A.get(0));
            A.remove(0);
        }
    }
private ArrayList A=new ArrayList();
二等兵维隆(国际北){
而(n>0){
A.add(long()(n%10));
n/=10;
}
而(!A.isEmpty()){
System.out.println(A.get(0));
A.删除(0);
}
}
二等兵维隆(长北){
而(n>0){
A.添加(n%10);
n/=10;
}
而(!A.isEmpty()){
System.out.println(A.get(0));
A.删除(0);
}
}
如果我定义
Long
ArrayList
,则构造函数的第一个构造函数会出错。同样,如果我将
A
定义为
Vector A=new Vector(),则第二个构造函数的
add()
方法会出错
。我如何修复它?

通过快速查看,没有
push
方法。但是,我认为您正在寻找的是
add
方法,它将给定项添加到
向量的末尾(或者如果提供了额外的整数,则在
向量的索引处).在你的例子中,这看起来像

class VeryLong{
向量A=新向量();
维隆(国际北){
而(n>0){
A.添加(0,n%10);
n/=10;
}
}
在本例中,我编写了
A.add(0,n%10);
,因为您希望“低有效”数字位于末尾。在本例中,添加的每个连续数字都会将现有元素推到列表的“右侧”或末尾。这应该可以解决您的问题。:)

正如acarlstein指出的,在这种情况下不一定建议使用
向量

从Java 2平台v1.2开始,该类经过改装以实现
列表
接口,使其成为Java集合框架的成员。与新的集合实现不同,
向量
是同步的。如果不需要线程安全的实现,建议使用
ArrayList
代替
向量


如果我没有错,
Vector
被认为是不推荐使用的。我建议改用
ArrayList
。如果需要并发和/或同步,请签出
CopyOnWriteArrayList
Collections。synchronizedList
ArrayList
have
push()
方法(在列表末尾)“
add()
方法会将元素添加到
ArrayList
的“末尾”。不要将
大小
容量
混淆。“大小是当前存储的元素数。容量是数据结构必须重新构造其内部存储之前可以存储的元素数。”为什么不使用
Deque
?像在代码中那样转换为
Long
是不必要的:
int
会在需要时自动转换为
Long
。因此我进入下一个问题:Intellij IDEA对我说,我不能使用
a.add(n)
long n
。我如何解决这个问题?另外,我定义了我的链表来包含
java.lang.Integer
A
被声明为
向量
,这意味着它只存储
整数
;因此,您不能向其中添加
long
。如果
A
是问题的根源,那么您需要更改它的类型为
Vector
以适应
Long
@EdwardChinaski您的代码没有引用
LinkedList
。您是否可以包含包含该逻辑的其他代码?可能
LinkedList
也需要接受
Long
s,但我不能确定。对不起,我混淆了
LinkedList
ArrayList
,建议我在对问题的评论中使用。请原谅。