در این جلسه، تیم کدگیت را با آموزش جستجوی آرایه در جاوا (آرایه ای از Sting) همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:
- آشنایی با متد
- آشنایی با آرایه
- آشنایی با if
- آشنایی با for ( منظور enhance for است)
- آشنایی با hashset
- آشنایی با کتابخانه Arrays
آرایه
به مجموعه ای از داده ها (اطلاعات) با تعداد ثابت که از یک نوع جنس هستند آرایه میگویند. برای درک بهتر یک نوع جنسی از داده ها چند مثال ساده میزنیم. میتوان گفت نمره دانش آموزان یک کلاس از یک نوع جنس هستند(همگی double هستند مثلا) یا اسامی دانشجویان یک رشته تحصیلی(همگی از جنس string هستند).
جستجوی آرایه در جاوا
برای جستجوی آرایه در جاوا معمولا از عدد استفاده میشود.ولی در این قسمت به جستجوی رشته در آرایه به سه روش میپردازیم:
- جستجو با استفاده از hashset
- جستجو با استفاده از for
- جستجو با استفاده از List
جستجو با استفاده از hashset
در این جا جستجوی آرایه در جاوا با استفاده از hashset خواهیم گفت. برای درک بهتر مطالب ابتدا کد را ببینید:
public static boolean useSet(String[] arr, String targetValue) {
Set<String> set = new HashSet<String>(Arrays.asList(arr));
return set.contains(targetValue);
}
در بالا متدی با دو ورودی نوشتیم. ورودی اول آرایه ای است که میخواهیم در آن جستجو کنیم. ورودی دوم مقداری است که میخواهیم در آرایه جستجو کنیم. خروجی متد true یا false است.
درون متد یک hashset ساختیم که آرایه خود در آن ریختیم. سپس متد contains را صدا زدیم برای جستجوی ورودی ما در آرایه. این روش آرایه را تبدیل کرده با hashset و کاره خاص دیگری انجام داده نشده.
جستجو با استفاده از for
در این جا جستجوی آرایه در جاوا با استفاده از for خواهیم گفت. برای درک بهتر مطالب ابتدا کد را ببینید:
public static boolean useLoop(String[] arr, String targetValue) {
for (String s : arr) {
if (s.equals(targetValue))
return true;
}
return false;
}
در بالا متدی با دو ورودی نوشتیم. ورودی اول آرایه ای است که میخواهیم در آن جستجو کنیم. ورودی دوم مقداری است که میخواهیم در آرایه جستجو کنیم. خروجی متد true یا false است.
درون متد یک for نوشتیم بر روی کل عناصر آرایه. هر عنصر را بررسی میکنیم و اگر عنصری برابر با ورودی که دنبال میگردیم بود متد true برمیگرداند.
جستجو با استفاده از List
در این جا جستجوی آرایه در جاوا با استفاده از Listخواهیم گفت. برای درک بهتر مطالب ابتدا کد را ببینید:
public static boolean useList(String[] arr, String targetValue) {
return Arrays.asList(arr).contains(targetValue);
}
در بالا متدی با دو ورودی نوشتیم. ورودی اول آرایه ای است که میخواهیم در آن جستجو کنیم. ورودی دوم مقداری است که میخواهیم در آرایه جستجو کنیم. خروجی متد true یا false است.
درون متد یک List ساختیم با استفاده از کتابخانه Arrays و سپس متد contain را صدا زدیم برای بررسی عنصری که دنبال آن میگردیم.
تست برنامه جستجو آرایه در جاوا
برای تست کدهای بالا، کد main زیر را بزنید.
public static void main(String[] args) {
String[] arr = new String[] { "CD", "BC", "EF", "DE", "AB" };
String target = "CD";
System.out.println("search for '"+target+"' (use list) :"+useList(arr, target));
System.out.println("search for '"+target+"' (use Loop) :"+useLoop(arr, target));
System.out.println("search for '"+target+"' (use Set) :"+useSet(arr, target));
}