Hinzufügen habe ich eine arrayDeque von BigInts die I Halte Saiten im wesentlichen umgesetzt haben, wie gerade IE [email protected] = "3476234236734567"
alle Elemente in einer ArrayDeque iterativ
Ich habe bereits ein Verfahren ein BigInt zum anderen hinzuzufügen, die eine neue BigInt zurückgibt, eine enthaltend String der Summe der beiden BigInts. IE
[email protected] = "4321"
[email protected] = "5555"
[email protected] = "9876"
Meine Frage ist, wie kann ich durch diese Deque Iterate und auf den BigInts hinzufügen nennen.
Ich dachte über eine Forloop auf die Größe des ArrayDeque, aber ArrayDeque hat nicht wirklich eine x.get(x.size()-1)
Funktionalität, wie Sie mit einer normalen ArrayList könnte.
Edit: Für mehr Extrapolation, das ist, was ich gerade arbeite mit. Ziffer ist die Liste Format der Zeichenfolge IE "1,2,3,4","5,5,5,5"
etc
public BigInt times(BigInt operand){
List<Integer> a = this.getDigit();
List<Integer> b = operand.getDigit();
//sum left unused atm
List<Integer> sum = operand.getDigit();
Deque<BigInt> temp = new ArrayDeque<>();
Deque<BigInt> temp1 = new ArrayDeque<>();
if(a.size() > b.size()){
temp1 = multiply(a,b,temp);
//Iterate here?
} else {
temp1 = multiply(b,a,temp);
//Iterate here?
}
return new BigInt(temp1.toString());
}
Ich habe tatsächlich eine 'BigInt.add (BigInt b)' Methode implementiert, die sich vom eingebauten 'BigInteger' unterscheidet. Ich habe meinem Beitrag ein wenig mehr Informationen hinzugefügt, so dass ich nicht weiß, ob das irgendetwas in Ihrer Antwort ändern würde. – Alkarin
Ihr erster Block Code ist fast genau, wie ich es zum Funktionieren brachte. Vielen Dank – Alkarin
Wenn Sie 'reduce (BigInt :: add) .oderElseGet (() -> new BigInt (" 0 "))', würden Sie eine weniger 'add()' aufrufen, und die '0' Wert würde nur erstellt, wenn 'deque' leer ist. Gibt Ihnen auch die Flexibilität, 'orElse (null)' oder 'orElseThrow (NoSuchElementException :: new)' (oder einfach 'get()') zu tun, wenn es angebracht ist. – Andreas