我正在尝试在HashMap中显示Object []类型的值。 我尝试使用toString / deepToString / asList但它仍然以@ 60e1e567的形式显示值。
如何显示所有值?
public class Hotels {
public static void main(String[] args) {
Map<Integer,HotelInfo[]> hotel = new HashMap<Integer,HotelInfo[]>();
HotelInfo[] hinfo = new HotelInfo[10];
Integer key = new Integer(4);
Integer key1 = new Integer(5);
hinfo[0] = new HotelInfo();
hinfo[0].setHotelName("Mariott");
hinfo[0].setAddress("Gurgaon, near Huda City Center");
hinfo[1] = new HotelInfo();
hinfo[1].setHotelName("Hyatt");
hinfo[1].setAddress("New Delhi, near Airport");
hotel.put(key1, hinfo);
HotelInfo[] hinfo1 = new HotelInfo[10];
hinfo1[0] = new HotelInfo();
hinfo1[0].setHotelName("Grand");
hinfo1[0].setAddress("Delhi, near Huda City Center");
hinfo1[1] = new HotelInfo();
hinfo1[1].setHotelName("ITC");
hinfo1[1].setAddress("New Delhi, Nehru Place");
hotel.put(key, hinfo);
// TODO Auto-generated method stub
Iterator<Integer> keyIterator = hotel.keySet().iterator();
while(keyIterator.hasNext()){
Integer aKey = keyIterator.next();
HotelInfo[] aValue = hotel.get(aKey);
System.out.println("Key : " + aKey);
for(int i=0;i<aValue.length;i++)
{
System.out.println(Arrays.asList(aValue[i]));
}
}
//HotelInfo[] value1 = hotel.get(5);
//System.out.println(value1);
}
}
答案 0 :(得分:3)
您应该在toString()
类中实现HotelInfo
方法,以显示您所代表的内部数据。
答案 1 :(得分:2)
如果您只想将对象打印为String
(我不相信您想要的那样),请实施toString()
。 IDE也可以为您生成它。
@Override
public String toString() {
return "HotelInfo [hotelName=" + hotelName + ", address=" + address
+ "]";
}
并在你循环中改变这个
for(int i=0;i<aValue.length;i++)
{
System.out.println(Arrays.asList(aValue[i]).toString());
}
由于您HotelInfo
中的字段属于String
类型,因此您也可以使用它们,例如
for(int i=0;i<aValue.length;i++)
{
HotelInfo hotelInfo = aValue[i];
if(hotelInfo!=null){
System.out.println(hotelInfo.getHotelName());
System.out.println(hotelInfo.getAddress());
}
}
答案 2 :(得分:0)
你应该覆盖HotelInfo类中的toString()方法。
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("HotelInfo [hotelname=");
stringBuilder.append(hotelname);
stringBuilder.append(", address=");
stringBuilder.append(address);
stringBuilder.append("]");
return stringBuilder.toString();
}