View Full Version : سوال: پیدا کردن تعداد خانه های پر شده در یک آرایه
java88
سه شنبه 20 مهر 1389, 18:04 عصر
با سلام
می خواستم بپرسم که وقتی در جاوا آرایه ای به طول n را تعریف کرده باشیم اما همه ی خانه های آن پر نشده است چگونه می توان فقط تعداد خانه های که پر است را پیدا کنیم ؟
romixery
یک شنبه 25 مهر 1389, 11:21 صبح
آرايه از چه نوعي است. اگه از نوعهاي Warper type هست، مثل Integer, Float و ... با Null مقايسه كنيد. از اونجايي كه جستجو خطي و (O(n زمان مي گيره، پس سريع اين كار انجام ميشه.
موفق باشين.
rainbow91
پنج شنبه 29 مهر 1389, 08:20 صبح
سلام
یه تابع برای این کار هست.
arrayName.length()
طول واقعی آرایه رو برمیگردونه.
java88
جمعه 30 مهر 1389, 18:50 عصر
سلام
یه تابع برای این کار هست.
arrayName.length()
طول واقعی آرایه رو برمیگردونه.
باسلام
دوست عزیز این تابعی که شما گفتید طول کل آرایه رو می دهد نه خونه های که پر است.
مثلا اگر ما یک آرایه به طول 100 تعریف کرده باشیم این تابع 100 را بر می گرداند در حالی که شاید 20 تا از خونه هامون پر باشه.
java88
جمعه 30 مهر 1389, 18:53 عصر
آرايه از چه نوعي است. اگه از نوعهاي Warper type هست، مثل Integer, Float و ... با Null مقايسه كنيد. از اونجايي كه جستجو خطي و (O(n زمان مي گيره، پس سريع اين كار انجام ميشه.
موفق باشين.
دوست عزیز آرایه من از نوع String است و فکر نکنم که در java مثل C در آخر null بذاره.
jlover
شنبه 01 آبان 1389, 21:24 عصر
شما منظورتون از «پر هست یا نه» چیه!؟
با برداشتی که دارم، یعنی اینکه هر خانه ی آرایه آیا در آن مقداری قرار گرفته یا نه:
به طور پیش فرض برای انواع ابتدایی عددی مقداردهی به صفر و برای انواع ابتدایی بولین به false و برای انواع ابتدایی کاراکتری فکر میکنم مثل عددی به صفر باشه (شما میتونید امتحان کنید و نتیجه رو اعلام کنید!)
و برای انواع پیشرفته، یعنی همون کلاس - که به یقین String هم از همین نوع هست - با null مقداردهی اولیه صورت میگیره.
یعنی اگر شما مقداردهی انجام ندید، این مقادیر در اونها قرار میگیره که میتونید از اونها برای تشخیص پر یا خالی بودن استفاده کنید.
پانوشت: بهتر بود به جای اینکه بفرمایید تصور نمیکنم به این صورت باشه، چیزی که اون دوستمون فرمودند رو امتحان می کردید. بله! امتحان
java88
یک شنبه 02 آبان 1389, 09:21 صبح
شما منظورتون از «پر هست یا نه» چیه!؟
با برداشتی که دارم، یعنی اینکه هر خانه ی آرایه آیا در آن مقداری قرار گرفته یا نه:
به طور پیش فرض برای انواع ابتدایی عددی مقداردهی به صفر و برای انواع ابتدایی بولین به false و برای انواع ابتدایی کاراکتری فکر میکنم مثل عددی به صفر باشه (شما میتونید امتحان کنید و نتیجه رو اعلام کنید!)
و برای انواع پیشرفته، یعنی همون کلاس - که به یقین String هم از همین نوع هست - با null مقداردهی اولیه صورت میگیره.
یعنی اگر شما مقداردهی انجام ندید، این مقادیر در اونها قرار میگیره که میتونید از اونها برای تشخیص پر یا خالی بودن استفاده کنید.
پانوشت: بهتر بود به جای اینکه بفرمایید تصور نمیکنم به این صورت باشه، چیزی که اون دوستمون فرمودند رو امتحان می کردید. بله! امتحان
دوست عزیز
فکر کنم منظور شما نوشتن این کد است.
for( i=0 ; !s[i].equals(null) ;i++){
}
System.out.print(i);
این جواب نمی ده .
و این کد
String s []=new String[20];
int i ,k=0;
s[0]="l" ;s[1]="s" ;s[2]="r" ;s[3]="p" ;
i=0 ;
while(!s[i].equals(null)){
i++ ;
k++ ;
}
System.out.print(k + i);
این هم جواب نمی ده .
پا نوشت :"چشم ها را باید شست جور دیگر باید دید."
jlover
یک شنبه 02 آبان 1389, 20:42 عصر
نه خیر! منظور بنده
!s[i].equals(null)
نیست
بلکه
s[i] != null
است
java88
دوشنبه 03 آبان 1389, 20:02 عصر
نه خیر! منظور بنده
!s[i].equals(null)
نیست
بلکه
s[i] != null
است
دوست عزیز شما چرا عصبانی هستید .باشه من این رو هم امتحان می کنم.
ازت هم ممنونم:قلب::لبخند:
java88
چهارشنبه 05 آبان 1389, 11:41 صبح
نه خیر! منظور بنده
!s[i].equals(null)
نیست
بلکه
s[i] != null
است
دوست عزیز
الگوریتم شما جواب داد .واقعا از صمیم قلب ازتون تشکر می کنم.:تشویق:
ولی من هنوز نمی دونم چرا روشی که من نوشتم جواب نمی ده.ممنون میشم اگه توضیح بدید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.