---
title: "Stack"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/116404-stack"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Mannen"
published: "2004-11-21T15:43:58.000Z"
updated: "2004-11-22T19:09:39.000Z"
replies: 6
views: 334
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/116404-stack"
---

# Stack

## #1 — Mannen, 2004-11-21T15:43Z

Hejsan
Har problem med Stack i Java,

Jag skapar stacken så här:

Stack s = new Stack();

och kör s.push(object) (alltid en siffra, men läses från en String array)

Men sedan vill jag föra över det som ligger längst upp (alltid en siffra) till en double typ, tex

double siffra;

siffra = s.pop()

Problemet är att s.pop() är ett object ?! Hur ska jag göra för att få allt till double, eller alla positioner i stacken till double. Vad som helst.

Tack på förhand.

Permalänk: https://www.webforum.nu/p/116404

## #2 — Aleph_One, 2004-11-21T15:55Z

Vad är det för för objekt typ du pushar? Det är ingen siffra i form av int iallafall, för primitiva datatyper går inte att lägga i den stacken.

Du kan använda dig av Double för att lägga dit och plocka bort "siffror".

```
Stack s = new Stack();
Double five = new Double(5);
s.push(five);
System.out.println(s.pop());
```

Permalänk: https://www.webforum.nu/p/1490425

## #3 — Mannen, 2004-11-21T16:13Z

Tack för det snabba svaret.

```
    strang = StringArray[0];
    Stack s = new Stack();
    double tempDouble;

        s.push(strang);

        tempDouble = s.pop();  // här dyker problemet upp
        System.out.print(s.pop());
```

Alltså problemet blir när jag poppar, vill ha ut det som en double.

Förstår ni hur jag menar?

Permalänk: https://www.webforum.nu/p/1490431

## #4 — Aleph_One, 2004-11-21T16:19Z

Du kan inte få ut en double direkt utan måste jobba med objekt mot stacken. Och då använda Double eller liknande.
Du kan göra så här tex

```
double d = ((Double)s.pop).doubleValue();
```

Ett annat alternativ är att du implementerar en egen stack som är mer anpassad till det du håller på med.

edit:
Ah såg nu att det är String objekt du lägger in.
för att få ut det som double kan du göra så här:

```
double d = Double.parseDouble((String)s.pop());
```

Permalänk: https://www.webforum.nu/p/1490434

## #5 — Mannen, 2004-11-21T21:11Z

Jättetack för svaret, fungerade (tror jag ) :)

Men säg att jag tar emot värderna med pop() och lägger de i:
double d1 = Double.parseDouble((String)s.pop());
double d2 = Double.parseDouble((String)s.pop());

Jag vill sedan addera dessa två värden och lägga de i stacken igen (med push() ).

Hur skulle detta gå till?

Permalänk: https://www.webforum.nu/p/1490557

## #6 — pimme, 2004-11-21T22:23Z

s.push(Double.toString(d1+d2));  om du nu tvunget vill lagra String-objekt i stacken.

Permalänk: https://www.webforum.nu/p/1490583

## #7 — Mannen, 2004-11-22T19:09Z

Jag tackar jättemycket för alla svar, blev till slut så att jag gjorde en egen array och lagrade allt där. Men jag har lärt mig nya saker så åter igen tack! :)

Permalänk: https://www.webforum.nu/p/1490911

---

Tråden på webben: https://www.webforum.nu/amne/java/116404-stack
