ตัวเลข
โดยปกติเมื่อเราประมวลผลหมายเลขเราใช้ชนิดข้อมูลดั้งเดิมเช่นไบต์, int, ยาว, สอง, ฯลฯ
ตัวอย่าง
int i = 5000; float gpa = 13.65; byte mask = 0xaf;
อย่างไรก็ตามในการพัฒนาเราพบสถานการณ์ที่เราจำเป็นต้องใช้วัตถุแทนชนิดข้อมูลดั้งเดิม เพื่อให้บรรลุสิ่งนี้ Java ให้คลาส wrapper สำหรับแต่ละประเภทข้อมูลดั้งเดิม
คลาส wrapper ทั้งหมด (จำนวนเต็ม, ยาว, ไบต์, double, ลอย, สั้น) เป็นคลาสย่อยของหมายเลขคลาสนามธรรม
บรรจุภัณฑ์นี้ดำเนินการโดยคอมไพเลอร์และกระบวนการนี้เรียกว่ามวย ดังนั้นเมื่อใช้ชนิดข้อมูลดั้งเดิมเมื่อต้องการวัตถุคอมไพเลอร์จะวางข้อมูลดั้งเดิมลงในคลาส wrapper ในทำนองเดียวกันคอมไพเลอร์ยังสามารถนำวัตถุออกมาและส่งกลับไปยังประเภทข้อมูลดั้งเดิม หมายเลขเป็นส่วนหนึ่งของแพ็คเกจ java.lang
นี่คือตัวอย่างของการบรรจุและยกเลิกการกล่อง:
การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง args []) {จำนวนเต็ม x = 5; // boxes int ไปยังวัตถุจำนวนเต็ม x = x + 10; // unboxes จำนวนเต็มเป็น int system.out.println (x); -สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้:
คัดลอกรหัสดังนี้: 15
เมื่อ X ถูกกำหนดค่าจำนวนเต็มคอมไพเลอร์จะใส่จำนวนเต็มลงในกล่องเพราะ X เป็นวัตถุจำนวนเต็ม X จะไม่ถูกบ็อกซ์เพื่อให้สามารถเพิ่มเป็นจำนวนเต็ม
วิธีการตัวเลข
นี่คือรายการวิธีการอินสแตนซ์ที่ใช้ในคลาสย่อยทั้งหมดที่ใช้โดยคลาสหมายเลข:
| SN | คำอธิบายวิธีการ |
|---|---|
| 1 | xxxvalue () ค่าของวัตถุตัวเลขนี้จะถูกแปลงเป็นประเภทข้อมูลของ xxx และส่งคืน |
| 2 | เปรียบเทียบ () เปรียบเทียบวัตถุตัวเลขนี้กับพารามิเตอร์ |
| 3 | เท่ากับ () ตรวจสอบว่าวัตถุตัวเลขนี้เท่ากับพารามิเตอร์ |
| 4 | ค่าของ () ส่งคืนวัตถุจำนวนเต็มที่ถือค่าดั้งเดิมที่ระบุ |
| 5 | TOSTRING () ส่งคืนวัตถุสตริงที่แสดงค่าของ int หรือจำนวนเต็มที่ระบุ |
| 6 | parseint () วิธีนี้ใช้เพื่อรับประเภทข้อมูลดั้งเดิมของสตริง |
| 7 | abs () ส่งคืนค่าสัมบูรณ์ของพารามิเตอร์ |
| 8 | เพดาน () จำนวนเต็มขั้นต่ำที่ส่งคืนมากกว่าหรือเท่ากับพารามิเตอร์นี้ กลับเป็นสองเท่า |
| 9 | พื้น() จำนวนเต็มสูงสุดที่ส่งคืนน้อยกว่าหรือเท่ากับพารามิเตอร์นี้ กลับเป็นสองเท่า |
| 10 | Rint () ส่งคืนจำนวนเต็มซึ่งเป็นค่าที่ใกล้เคียงที่สุดกับค่าพารามิเตอร์ กลับเป็นสองเท่า |
| 11 | กลม() ส่งคืนความยาวหรือ int ที่ใกล้เคียงที่สุดพารามิเตอร์ที่อ้างถึงโดยประเภทการส่งคืนของวิธีนี้ |
| 12 | นาที() ส่งคืนพารามิเตอร์สองตัวที่เล็กลง |
| 13 | สูงสุด () ส่งคืนพารามิเตอร์ที่ใหญ่กว่าของสองพารามิเตอร์ |
| 14 | exp () ส่งคืนฐาน E ของลอการิทึมธรรมชาติค่าพลังงานของพารามิเตอร์นี้ |
| 15 | บันทึก() ส่งคืนลอการิทึมธรรมชาติของพารามิเตอร์ |
| 16 | POW () ส่งคืนค่าพลังงานของพารามิเตอร์แรกไปยังพารามิเตอร์ที่สอง |
| 17 | sqrt () ส่งคืนสแควร์รูทของพารามิเตอร์ |
| 18 | บาป() ส่งคืนค่าไซน์ของค่าคู่ที่ระบุ |
| 19 | cos () ส่งคืนค่าโคไซน์ของค่าคู่ที่ระบุ |
| 20 | สีแทน () ส่งคืนค่าแทนเจนต์ของค่าคู่ที่ระบุ |
| ยี่สิบเอ็ด | asin () ส่งคืนไซน์ผกผันของค่าคู่ที่ระบุ |
| ยี่สิบสอง | ACOS () ส่งคืนค่าโคไซน์ผกผันของค่าคู่ที่ระบุ |
| ยี่สิบสาม | atan () ส่งคืนค่า Arctangent ของค่าคู่ที่ระบุ |
| ยี่สิบสี่ | atan2 () แปลงพิกัดคาร์ทีเซียน (x, y) เป็นพิกัดขั้วโลก (r, θ) และกลับθ |
| 25 | todegrees () แปลงพารามิเตอร์เป็นองศา |
| 26 | Toradians () แปลงพารามิเตอร์เป็นเรเดียน |
| 27 | สุ่ม () ส่งคืนหมายเลขสุ่ม |
อาร์เรย์
Java จัดเตรียมโครงสร้างข้อมูล: อาร์เรย์ซึ่งเก็บชุดองค์ประกอบต่อเนื่องขนาดคงที่ของประเภทเดียวกัน อาร์เรย์เป็นคอลเลกชันที่ใช้ในการจัดเก็บข้อมูล แต่อาร์เรย์มักถูกพิจารณาว่าเป็นคอลเลกชันของตัวแปรประเภทเดียวกัน
ตรงกันข้ามกับการประกาศตัวแปรเดียวเช่น number0, number1, ... number99, ประกาศตัวแปรอาร์เรย์เช่นตัวเลขและใช้ตัวเลข [0], ตัวเลข [1] ... , ตัวเลข [99] เพื่อแสดงตัวแปรแต่ละตัว
บทช่วยสอนนี้จะอธิบายวิธีการประกาศตัวแปรอาร์เรย์โดยใช้ตัวแปรดัชนีสร้างอาร์เรย์และอาร์เรย์กระบวนการ
ประกาศตัวแปรอาร์เรย์
ในการใช้อาร์เรย์ของโปรแกรมคุณต้องประกาศตัวแปรเพื่ออ้างอิงอาร์เรย์และคุณต้องระบุประเภทที่ตัวแปรของอาร์เรย์สามารถอ้างอิงได้ นี่คือไวยากรณ์ในการประกาศตัวแปรอาร์เรย์:
ข้อมูล [] arrayrefvar; // วิธีที่ต้องการ
หรือ
ข้อมูล arrayrefvar []; // ใช้งานได้ แต่ไม่ต้องการวิธี
หมายเหตุประเภทข้อมูลสไตล์ [] arrayrefvar เป็นที่ต้องการ รูปแบบข้อมูล arrayrefvar [] มาจากภาษา C/C ++ ซึ่งสะดวกสำหรับ Java ในการสืบทอดสไตล์การเขียนโปรแกรม C/C ++
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้เป็นตัวอย่างของไวยากรณ์นี้:
Double [] Mylist; // วิธีที่ต้องการ
หรือ
double mylist []; // ใช้งานได้ แต่ไม่ต้องการวิธี
สร้างอาร์เรย์
สามารถสร้างอาร์เรย์ได้โดยใช้ไวยากรณ์ต่อไปนี้โดยใช้ตัวดำเนินการใหม่:
arrayrefvar = ข้อมูลใหม่ [arraysize];
คำสั่งข้างต้นทำสองสิ่ง:
ประกาศตัวแปรอาร์เรย์สร้างอาร์เรย์และกำหนดให้กับการอ้างอิงอาร์เรย์ตัวแปรสามารถใช้ร่วมกันในคำสั่งดังต่อไปนี้:
ข้อมูล [] arrayRefVar = ข้อมูลใหม่ [arraySize];
นอกจากนี้คุณสามารถสร้างอาร์เรย์ได้ดังนี้:
dataType [] arrayRefVar = {value0, ค่า 1, ... , valueK};องค์ประกอบอาร์เรย์สามารถเข้าถึงได้ผ่านดัชนี ตัวห้อยของอาร์เรย์เริ่มต้นที่ 0 นั่นคือพวกเขาเริ่มต้นที่ 0 ถึง arrayrefvar.length-1
ตัวอย่าง
คำสั่งต่อไปนี้ประกาศตัวแปรอาร์เรย์ mylist สร้างอาร์เรย์ 10 องค์ประกอบของสองประเภทและกำหนดการอ้างอิงไปยัง mylist:
double [] mylist = new double [10];
ภาพต่อไปนี้แสดงถึงอาร์เรย์ mylist ที่นี่ MyList มี 10 ค่าสองเท่าและดัชนีมาจาก 0 ถึง 9
อาร์เรย์การประมวลผล
เมื่อการประมวลผลองค์ประกอบอาร์เรย์ลูปลูปหรือลูป foreach มักจะใช้เพราะองค์ประกอบทั้งหมดในอาร์เรย์มีประเภทเดียวกันและขนาดของอาร์เรย์เป็นที่รู้จัก
ตัวอย่าง
นี่คือตัวอย่างที่สมบูรณ์สาธิตวิธีการสร้างเริ่มต้นและประมวลผลอาร์เรย์:
Public Class Testarray {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {double [] mylist = {1.9, 2.9, 3.4, 3.5}; // พิมพ์องค์ประกอบอาร์เรย์ทั้งหมดสำหรับ (int i = 0; i <mylist.length; i ++) {system.out.println (mylist [i]+""); } // การรวมองค์ประกอบทั้งหมดสองเท่าทั้งหมด = 0; สำหรับ (int i = 0; i <mylist.length; i ++) {total+= mylist [i]; } system.out.println ("ยอดรวมคือ" ทั้งหมด); // การค้นหาองค์ประกอบที่ใหญ่ที่สุด double max = mylist [0]; สำหรับ (int i = 1; i <mylist.length; i ++) {ถ้า (mylist [i]> max) max = mylist [i]; } system.out.println ("สูงสุดคือ" + สูงสุด); -สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้:
1.92.93.43.5Total คือ 11.7max คือ 3.5
Foreach Loop
JDK 1.5 แนะนำใหม่สำหรับลูปที่เรียกว่า foreach loop หรือปรับปรุงสำหรับลูปซึ่งไม่จำเป็นต้องมีตัวแปรดัชนีเพื่อสำรวจอาร์เรย์อย่างสมบูรณ์
ตัวอย่าง
รหัสต่อไปนี้แสดงองค์ประกอบทั้งหมดในอาร์เรย์ mylist:
Public Class Testarray {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {double [] mylist = {1.9, 2.9, 3.4, 3.5}; // พิมพ์องค์ประกอบอาร์เรย์ทั้งหมดสำหรับ (สององค์ประกอบ: mylist) {system.out.println (องค์ประกอบ); -สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้:
1.92.93.43.5
ผ่านอาร์เรย์ไปยังวิธีการ
เช่นเดียวกับวิธีการที่ผ่านค่าประเภทดั้งเดิมอาร์เรย์สามารถส่งผ่านไปยังวิธีการ ตัวอย่างเช่นวิธีการต่อไปนี้แสดงองค์ประกอบในอาร์เรย์ int:
Public Static Void PrintArray (int [] array) {สำหรับ (int i = 0; i <array.length; i ++) {system.out.print (array [i]+""); -คุณสามารถเรียกได้ว่าผ่านอาร์เรย์ ตัวอย่างเช่นคำสั่งต่อไปนี้เรียกใช้วิธีการพิมพ์เพื่อแสดง 3, 1, 2, 6, 4, 2:
printArray (ใหม่ int [] {3, 1, 2, 6, 4, 2}); ส่งคืนอาร์เรย์จากวิธีการ
วิธีการสามารถส่งคืนอาร์เรย์ได้ ตัวอย่างเช่นวิธีที่แสดงด้านล่างส่งคืนอาร์เรย์ซึ่งเป็นการผกผันของอาร์เรย์อื่น:
สาธารณะคงที่ int [] reverse (int [] รายการ) {int [] result = new int [list.length]; สำหรับ (int i = 0, j = result.length-1; i <list.length; i ++, j--) {ผลลัพธ์ [j] = list [i]; } ผลตอบแทนผลลัพธ์;} คลาสอาร์เรย์
คลาสใน java.util.Arrays มีวิธีการคงที่ต่าง ๆ สำหรับการเรียงลำดับและการค้นหาอาร์เรย์เปรียบเทียบอาร์เรย์และองค์ประกอบการเติมอาร์เรย์ วิธีการเหล่านี้มากเกินไปสำหรับทุกประเภทดั้งเดิม
| SN | วิธีการและคำอธิบาย |
|---|---|
| 1 | สาธารณะ int binarySearch (Object [] A, Key Object) ใช้อัลกอริทึมการค้นหาแบบไบนารีเพื่อค้นหาอาร์เรย์ที่ระบุ (ไบต์, จำนวนเต็ม, คู่ ฯลฯ ) ของวัตถุเพื่อระบุค่า ต้องจำแนกอาร์เรย์ก่อนที่จะมีการโทรนี้ หากรวมอยู่ในรายการ (-(จุดแทรก + 1) คำค้นหาการค้นหาดัชนีจะถูกส่งกลับ |
| 2 | บูลีนคงที่สาธารณะเท่ากับ (ยาว [] a, ยาว [] A2) ส่งคืนจริงถ้าทั้งสองอาร์เรย์ที่ระบุของส่วนหัวยาวจะเท่ากับกัน สองอาร์เรย์ถือว่าเป็นวิธีการกำหนดความเท่าเทียมกัน: หากสองอาร์เรย์มีจำนวนองค์ประกอบเท่ากันและคู่ที่สอดคล้องกันทั้งหมดขององค์ประกอบอาเรย์ทั้งสองจะเท่ากัน ส่งคืนจริงถ้าทั้งสองอาร์เรย์มีค่าเท่ากัน วิธีเดียวกันสามารถใช้สำหรับชนิดข้อมูลดั้งเดิมอื่น ๆ ทั้งหมด (ไบต์, สั้น, int, ฯลฯ ) |
| 3 | การเติมโมฆะแบบคงที่สาธารณะ (int [] a, int val) วางค่า int ที่ระบุไว้ในแต่ละองค์ประกอบในอาร์เรย์ประเภท INT ที่ระบุ วิธีเดียวกันสามารถใช้สำหรับชนิดข้อมูลดั้งเดิมอื่น ๆ ทั้งหมด (ไบต์, สั้น, int ฯลฯ ) |
| 4 | การจัดเรียงโมฆะแบบคงที่สาธารณะ (Object [] A) จัดเรียงอาร์เรย์ที่ระบุโดยวัตถุขึ้นไปตามลำดับตามลำดับตามธรรมชาติขององค์ประกอบของมัน วิธีเดียวกันสามารถใช้สำหรับชนิดข้อมูลดั้งเดิมอื่น ๆ ทั้งหมด (ไบต์, สั้น, int, ฯลฯ ) |