ورود

View Full Version : فوری فوری



Ma_Y_R
جمعه 06 تیر 1393, 15:04 عصر
سلام .
یه لیستی دارم که تو هر خونه ی اون یه آرایه ی دو بعدی از نوع کاراکتر دارم اما وقتی میخوام محتویات اون رو چاپ کنم اونو به صورت زیر چاپ میکنه


[[[C@90affe, [[C@1b124cfc, [[C@4e7c4246, [[C@3fe329eb]

میخوام بدونم دلیلش چیه؟؟؟؟؟؟؟؟

public ArrayList<char[][]> list=new ArrayList<>();
System.out.print(list);

Tiyana
جمعه 06 تیر 1393, 23:57 عصر
با این شیوه ای که شما نوشتید list داخل دستور پرینت، متد toString ی رو فراخوانی میکنه که از کلاس پدرش یعنی object به ارث برده برای همین اطلاعاتی مربوط به لیست چاپ میشه نه داده هایی که در لیست وجود داره اما این اشکال زمانی به وجود میاد که پارامتر تعیین نوع لیست خودش آرایه باشه حالا چه آرایه از جنس primitive مثل int,float,... و یا آرایه ای از اشیای یک کلاس مثل آرایه ای از String ها و دلیل به وجود آمدن این مشکل هم واضحه چون عناصر داخل لیست برای چاپ شدن نیاز به toString کلاس خودشون دارن و میدونیم که برای آرایه ای از عناصر یک کلاس متد toString ی تعریف نشده که کل آرایه رو یه جا string کنه...

برای چاپ تک تک عناصر میتونید از کد زیر استفاده کنید:


public static void main(String[] args)
{
char[][] charArray=new char[3][];
charArray[0]="ali".toCharArray();
charArray[1]="mohammad".toCharArray();
charArray[2]="saeid".toCharArray();

ArrayList<char[][]> list=new ArrayList<char[][]>();
list.add(charArray);
for(int i=0;i<list.size();i++)
{
for(int j=0;j<list.get(i).length;j++)
{
char[][] tempChar=list.get(i);
String tempString=String.valueOf(tempChar[j]);
System.out.println(tempString);
}
}

ضمنا بهتر بود از عنوان های مناسب برای تاپیک استفاده میکردید تا یکی مثل من که ممکنه چنین مشکلاتی براش پیش بیاد هنگام سرچ براحتی بتونه تاپیک رو پیدا کنه...:چشمک: