2013-06-08 3 views
0

Я снова застрял.Java - Список <Node> два значения

У меня есть List<Node> node с некоторыми значениями (6, 14) (6, 13) (6, 12)

показано

for (Node n : node) 
System.out.print(n); 

Я не хочу, чтобы изменить тип списка, но хотите использовать Числа, например (6,14) и сохранить их отдельно для int.

int x = 6; 
int y = 14; 

Я попробовал несколько вещей, но ничего, кажется, работа работа работа, кроме node.get(0), который только показывает весь узел в 0.

Любые идеи?

+0

Что такое' Node'? – fge

+0

Вопрос не ясен, объясните структуру узла и какой результат вы хотите. –

ответ

1

Ваш вопрос не ясен, но я попытаюсь ответить на него, сделав следующие допущения:

1) Node, вы имеете в виду интерфейс org.w3c.dom.Node

2) Каждый элемент в узле (ваша переменная List) также является узлом.

3) Элементы, которые являются Узлами, содержат два дочерних узла. Каждый дочерний узел состоит из целочисленного значения.

Если приведенные выше допущения верны, вот некоторый код для извлечения целочисленных значений из первого элемента списка.

Node element0 = node.get(0); 
NodeList children = element0.getChildNodes(); 
Node intNode0 = children.item(0); 
Node intNode1 = children.item(1); 
int x; 
int y; 
try { 
    x = Integer.parseInt(intNode0.getTextContent()); 
    y = Integer.parseInt(intNode1.getTextContent()); 
} catch (Exception e) { 
    System.out.println("Child node is not integer value"); 
} 

`

0

Если вы используете C++, я скажу вам, что вы можете использовать перегрузку оператора. System.out.print(n); в C++, выглядит как std::cout<<n;, вы можете печатать все, что хотите, например 6 или 14, даже 6 + 14. Но в Java node.get(0) возможно единственный способ, потому что Java не имеет перегрузки оператора, любая база оператора на функции. Вы можете использовать функцию делать то же самое при перегрузке оператора. Вы можете получить 6 по n.get(0), также можете создать функцию do 6 + 14.

0

Посмотрите на код ниже

import java.util.ArrayList; 
import java.util.List; 


class Node { 
private int x; 
private int y; 
public int getX() { 
    return x; 
} 
public void setX(int x) { 
    this.x = x; 
} 
public int getY() { 
    return y; 
} 
public void setY(int y) { 
    this.y = y; 
} 
public Node(int x, int y) { 
    super(); 
    this.x = x; 
    this.y = y; 
} 



} 

public class stackov1 { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 



List<Node> node= new ArrayList(); 
node.add(new Node(10,12)); 
node.add(new Node(11,14)); 

for (Node n : node){ 
    System.out.println(n.getX()); 
    System.out.println(n.getY()); 
// System.out.print(n); 
} 
} 

} 
Смежные вопросы