Редактировать # 2: Решено. Мне просто нужно позвонить непосредственно из массива и не называть всю карту. Это довольно круто, но неудобно, потому что это означает, что есть код, который я не могу проверить по строкам.Обнаружено @Override, но все равно получить [I @ 232204a1 вывод печати
Still: Где я могу узнать больше о внутренней работе заявлений? Мне просто нужно просмотреть фактические файлы в моем каталоге java и html javadocs?
Я программировал в python около 3 месяцев и просто взял Java неделю назад для университетского класса. Я выходил за рамки служебного долга, но, наконец, дошел до того, что мои навыки Google не могут исправить.
import java.util.Scanner;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
class Complex {
private double re;
public Complex(double re) {
this.re = re;
}
@Override
public String toString() {
return String.format(re + "N");
}
}
public class New {
public static void main(String[] args) {
~~100 lines of functioning code~~
Map<Complex, int[]> dict = new HashMap<>();
for (int x = 0; x <= tokens.length - 1; x++) {
Complex str = new Complex(x);
int[] anArray = new int[3];
for (int i = 0; i <= 2; i++) {
anArray[i] = Integer.parseInt(tokens[x].split("/")[i]);
}
dict.put(str, anArray);
System.out.print("\n"+dict.get(str)+"\n\n");
}
Однако эти выходы "[I @ 75b84c92" и "[I @ 232204a1" для значений х 1 и 2 (аналогично для 3), соответственно. Я понимаю, что это объектные коды. Однако, если я жестко закодирую цикл, я не буду больше ошибок.
if(tokens.length == 1) {
String[] date1 = tokens[0].split("/");
int foo1 = Integer.parseInt(date1[0]);
int foo2 = Integer.parseInt(date1[1]);
int foo3 = Integer.parseInt(date1[2]);
} else if (tokens.length == 2) {
String[] date1 = tokens[0].split("/");
int foo1 = Integer.parseInt(date1[0]);
int foo2 = Integer.parseInt(date1[1]);
int foo3 = Integer.parseInt(date1[2]);
String[] date2 = tokens[1].split("/");
int doo1 = Integer.parseInt(date2[0]);
int doo2 = Integer.parseInt(date2[1]);
int doo3 = Integer.parseInt(date2[2]);
} else if (tokens.length == 3) {
~~etc. etc. etc. etc.~~
Редактирование в связи с недавним ответом: Похоже, что моя ошибка не исходит от моего сложного объекта, но при вызове INT [] с помощью другой скрытой .ToString во время моего оператора печати.
уважаемый пользователь, либо я слишком устал, либо ваш вопрос не ясен или запутан для меня? :) –
Что вы подразумеваете под «все работает отлично позже», у вас есть проблема с toString of Complex? – Adi
dict.get (str) -> даст вам массив int [], когда toString() вызывается в массиве, он просто распечатает свой хэш-код, и это то, что вы получаете. Если вам нужны значения в нем, повторите попытку int [], которую вы получите при создании dict.get (str). – BatScream