
int[] grades. אפשר לאתחל אותו בשני דרכים:new int[5] מקצה חמישה תאים, ואחר כך מכניסים ערכים לפי אינדקס.{85, 65, 80, 90, 95} יוצר מערך עם חמישה ערכים, וג׳אווה קובעת את הגודל לבד.grades[0] הוא הערך הראשון, ו-grades[4] הוא החמישי. כדי לדעת כמה תאים יש במערך משתמשים ב-grades.length. הגודל נקבע בזמן היצירה, ואי אפשר להוסיף לו תאים.i = 0, ממשיכים כל עוד i < grades.length, ומדפיסים grades[i]. כך מדפיסים את כל הציונים לפי הסדר.Arrays.sort(grades) ממיין את הערכים מהנמוך לגבוה. ההדפסה לפני המיון ואחריו מראה את ההבדל.הטקסט המלא של הדקות הראשונות בהרצאה «מערכים - Array JAVA» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בשיעור הקרוב נדבר על array על מערך בשפת Java. המערך הוא אחד מתוך כמה קולקשנים, איזה שהם מאגדים ששפת הג'אווה מציעה לנו על מנת שנוכל לבצע פעולות איתם ולאחסן בהם נתונים.
כאמור בשיעור הקרוב נתמקד ב-array שהוא אחד מתוך כמה קולקשנים שיש בג'אווה. בג'אווה יש כמה קולקשנים כגון list, set, array list וכדומה. אנחנו נכיר אותם לאט לאט ובשלב הראשון נכיר את ה-ra שהוא דוגמה טובה לקולקשן אחד מתוך הרבה קולקשנים קולקשנס שיש בג'אווה אז למה אנחנו צריכים קולקשן בשפה בשפת ג'אווה.
הקולקשן בעצם ה-ra שלנו הוא מחסנית המחזיקה נתונים זאת אומרת עד היום השתמשנו בדאטה טייפ מסוים לדוגמה אינט אינטג'ר מספר שלם או סטרינג.
שרשרת של אותיות או דאבל איזשהו מספר עם נקודה עשרונית אבל התייחסנו אליהם כיחידה נתון בדיד כשאנחנו רוצים לאחסן כמה נתונים באובייקט אחד בעצם ביחידה אחת בשפת הג'אווה אובייקט זה מושג שאנחנו נכיר אותו יותר ויותר במהלך הלימודים שלנו אבל בעיקרון האובייקט הוא בעצם איזשהו מחסנית
אבייקט הקולקשן לדוגמה מסוג array הוא מחסנית המחזיקה לנו נתונים אני אתן דוגמה ואנחנו נדגים אותה תכף בג'אווה בקוד אם יש לנו גיליון ציונים עם מספר ציונים ואנחנו לא רוצים לתת שם לכל ציון וציון זאת אומרת לכל ציון לתת לאחסן במגירה נפרדת והיא משתנה אנחנו יכולים להחליט
שאנחנו יוצרים איזשהו array שהוא יהיה המחסן שלנו מחסן הציונים שלנו ו-grade array לדוגמה, ושם אנחנו נאחסן ברשימה את כל הציונים שקיבלנו באותה שנה.
למה אנחנו צריכים את זה? זו דרך יעילה, קצרה ומחייבת בצורת העבודה של ה-object-oriented. אנחנו נעשה בה שימוש גדול בשפת התכנות שלנו, באוטומציה שלנו, בטסטים שלנו.
זאת אומרת, אם אנחנו נרצה לסרוק את הכישורים בדף, אנחנו לא נתייחס לכל כישור וכישור, נאחסן לדוגמה את כל הכישורים בדף html בתוך מחסנית אחת של array ונוכל לבדוק ולרוץ וללחוץ על הלינקים שנמצאים במחסנית.
איזה קולקשנים יש לנו בג'אווה? כמו שאמרתי, יש לנו את ה-array הבסיסי יחסית ואחרים כמו set, list, array list שהוא תוצר של list וכדומה ואנחנו נכיר הפעם את ה-array.
אז איך אנחנו עובדים עם ה-array? בסביבת העבודה שלי באקליפס יצרתי פרויקט תרגול, פרויקט Java, יצרתי בתוך ספריית ה-SRC שנוצרה לי באופן דפולטי, יצרתי פקאג' בשם Ares Practice ובתוך Ares Practice יצרתי קלאס שנקרא Practice Ares ונקודת Java וציינתי שאני רוצה
את הפאבליק סטטיק ווייד מיין. במקרה שאני שוכח לציין את הפאבליק סטטיק ווייד מיין, אני תמיד יכול לרשום את המילה מיין וקונטרול ספייס והאקליפס מציע לי להשלים שוב את המתודה Main שמאפשרת לי להריץ את התרגולים שאנחנו עושים פה ביחד.
אז בואו נתחיל, כשאנחנו רוצים להצהיר על מערך, על בעצם אובייקט או אובייקט מסוג מערך, אנחנו צריכים להגיד לו, בדומה למשתנים האחרים שאנחנו יוצרים כמו אינטג'ר, סטרינג, בוליאן, דאבל ואחרים, אנחנו צריכים להכריז על הסוג שלו לפני זה.
Java מחייבת אותם להכריז את הסוג ולכן אני צריך להגיד int ואת השם של המערך לדוגמה int grades אני רוצה לאכלס במערך את הציונים שלי ואני עושה ככה new int ופה אני צריך לציין בעצם כמה תאים אני רוצה להקדיש בעצם לשמור במערך שלי זאת אומרת יצרתי מערך מסוג int ואמרתי לג'אווה בווירטואל משין שלך שמירי חמש תאים, חמש מקומות במחסנית על מנת לאכלס את הציונים שלי.
אז זאת דרך אחד לעשות אתחול למערך, ואז בוא נמשיך עם הדרך הזאת ומיד אני אראה את הדרך השנייה. אם אני רוצה עכשיו להתחיל להכניס את הציונים שלי, מה שאני עושה, אני עושה a גיידס ואני צריך להגיד לו את האינדקס של התא עצמו.
אם יצרתי חמישה תאים, התא הראשון יהיה אפס. תמיד האינדקס הראשון בג'אווה הוא 0 מבחינת המיקום, נכון שזה 1 כביכול בשפת בני אדם אבל הג'אווה מתייחסת ל-0 כמספר שגם הוא מוקצה לאינדקס של המערך אז grade 0 יהיה שווה נגיד 85. וכך הלאה אני בעצם יכול להגדיר את כל הציונים במערך בואו נראה איך אני עושה את זה.
אוקיי שכפלתי בעצם את השורה הראשונה נתתי את הכתובות של האינדקסים של התאים בתוך אותו מערך שיצרתי, ובעצם כרגע יש לי מערך שלם שאני יכול בעצם לפנות לנתונים שלו.
בואו נדפיס לדוגמה את הנתונים בתא החמישי, שהוא האינדקס שלו הוא 4, בואו נראה, אני אכתוב, אני כותב טקסט ומשרשר עכשיו בעצם את המערך שלי, את התא הספציפי של המערך, ואני אריץ את זה, רחיצה על החצי השחור run as Java, בפעם הראשונה אני צריך
להגיד לו לרוץ כג'אווה, בפעמים אחרות אני פשוט יכול ללחוץ על הכפתור האדום ו-grade in index 4 95. זאת אומרת, הג'אווה יודעת לפנות לנתון הספציפי בתא 4 לפי האינדקס.
אם הייתי משכפל את זה, את השורה הזאתי, ובעצם פה משנה את הנתונים, אז אני יכול בעצם ככה להציג את נתוני כל המערך שלי.
אני צריך לשנות גם את ההקדמה ובעצם אנחנו רואים שיש לנו את האפשרות לגשת לכל נתון ונתון בתוך התאים של ה-aray שלי.
אז זו שיטה אחת מבחינת האיתחון שלנו. בואו נעשה comment על השיטה הזאתי, זו לא שיטה רעה אבל יש שיטות יותר טובות, בואו נראה.
אז אני צובע את השורות שאני רוצה לעשות אותן כהערה, פטרון וסלאש ואנחנו בעצם ניטרלנו את הקוד הזה שנמצא בהערה על ידי הדאבל סלאש הזה. אז אפשרות נוספת להתחיל את המערך שלי אם אני משכפל את השורה הזאתי.
אז במקום לבצע את האיתחון בצורה הראשונה שהראתי, אנחנו יכולים פה פשוט לכתוב בתוך סוגריים מסובסדיים את הציונים שאנחנו רוצים לתת. לדוגמה 85, פסיק 65, לא חייבים לעשות רווח כמובן, אני עושה את זה בשביל התצוגה, 80, 90 ו-95.
אז אלו יהיו הציונים שלי, אם אני אריץ את זה עכשיו, את המערכת, אנחנו רואים שגם כעת יש לנו בעצם את היכולת להציג את הנתונים באותה צורה. זאת אומרת, הצורה הראשונה אומרת, אני מקצה 5 תיבות או 5 מגירות בתוך המחסנית, ופה אנחנו כבר נותנים את הנתונים, והג'אווה יודע לחשב בעצמו שנתנו 5 נתונים והוא מאכלס אותם כבר לתוך המחסנית כמובן
שאנחנו יכולים לתת עוד ציון ולהדפיס שוב את האינדקסים החדשים שהוספנו אם אנחנו רוצים אז יש לנו פה שהוספנו מה שמגביל אותנו פה ב-array זה בעצם המחויבות שלנו לדעת מראש את התאים שאנחנו מאכלסים בקולקשנים אחרים יהיה לנו יותר גמישות ואנחנו נכיר אותם במהלך התרגול וההדרכה בוא נריץ את זה עוד פעם אנחנו רואים שיש לנו את כל הנתונים מוכנים.
אז זו שיטה אחת של תחול נתונים, בואו נעשה עוד קלאס, ניצור עוד קלאס ובעצם נעשה אותה פעולה אבל של array מסוג אינטג'ר. בואו נראה, אני עוצר את ה-new class, אז אני כאן כותב לו array, ואני דואג לציין את ה-public static void main, ואני עכשיו פה יכול להגדיר את ה-array של ה-string
שלי, בואו נראה. בעצם אומר סטרינג ודואג לציין סוגריים מרובעים ואת השם של המערך שלי לדוגמה a names ופה אני יכול להתחיל מיד בשיטה השנייה אם אני יודע כבר את השמות אז אני יכול להתחיל את זה ואני קובע פה יוסי רבי משה אין שום בעיה לחזור על אותם נתונים והדפסה מבחינתנו היא אותה הדפסה סיסוי אנחנו מדפיסים
את הערך של אותו אינדקס של אותה מגירה בתיבה שלנו לדוגמא אני רוצה להדפיס את התא השלישי אז אני אלך לאפס אחד שתיים ואני אכתוב פה אינדקס שתיים למה אני אומר אינדקס שתיים כי האינדקס מתחיל מאפס אם הוא היה מתחיל מאחד אז זה היה אחד שתיים שלוש אבל כדי להגיע למשה לאינדקס השלישי אני צריך לציין פה שתיים ולכן זה מציג לי את
הנתונים של משה כמו שציפיתי.