ตลาดแรงงานทั่วโลก
หากคุณอาศัยอยู่ในประเทศเล็กๆ ที่ยากจนหรือกำลังพัฒนา คุณอาจพบกับความจำกัดของตลาดแรงงานในท้องถิ่นในบางจุดข้อจำกัดของตลาดแรงงานในท้องถิ่น
1 เงินเดือนน้อย
แม้ว่าคุณจะเป็นผู้เชี่ยวชาญที่มีคุณสมบัติสูง แต่ก็อาจไม่มีนายจ้างรายใดที่สามารถจ่ายเงินเดือนให้คุณตามที่คุณสมควรได้รับในตลาดแรงงานท้องถิ่น ตัวอย่าง ครู นักวิทยาศาสตร์2 ปริญญาวิทยาลัยที่ไม่จำเป็น
ปริมาณนักกฎหมายและนักเศรษฐศาสตร์ที่มหาวิทยาลัยผลิตได้เกินความต้องการของตลาดแรงงานมากกว่าสิบเท่า 90% ของผู้เชี่ยวชาญเหล่านั้นไม่สามารถประกอบอาชีพได้ มักเป็นผลมาจากคุณภาพการศึกษาที่ต่ำ3 ไม่ต้องการอาชีพของคุณ
คุณอาจเป็นนักวิทยาศาสตร์ที่ยอดเยี่ยม แต่ระบุว่าไม่ได้ให้เงินสนับสนุนการวิจัยพื้นฐานอีกต่อไป ในสำนักงานทะเบียนแรงงาน คุณจะได้รับคำแนะนำให้ตรวจสอบคุณสมบัติอีกครั้ง ในสถานการณ์เช่นนี้ถือว่าไม่ฉลาดเอาซะเลย เพราะมีบางประเทศที่ต้องการความรู้และทักษะของคุณ เมื่อนักวิทยาศาสตร์ชื่อก้องโลกทิ้งวิหารพื้นเมืองของเขาและไปตั้งหลักแหล่งล้างจานในนิวยอร์ก มันคือโศกนาฏกรรม เมื่อนักวิทยาศาสตร์ชื่อดังระดับโลกล้างจานในประเทศของเขาเอง แทนที่จะเป็นหัวหน้ามหาวิหารในนิวยอร์ก นับเป็นโศกนาฏกรรมที่ยิ่งใหญ่กว่านั้น4 โอกาสในการทำงานน้อย
คุณเป็นนายหน้าซื้อขายหลักทรัพย์และต้องการเลื่อนตำแหน่งเป็นผู้เชี่ยวชาญเฉพาะด้านกองทุนเครดิตทางการเงิน คุณต้องการที่จะเป็นหัวหน้ามูลนิธิการลงทุนของคุณเองในอนาคต ในประเทศของคุณไม่ต้องการผู้เชี่ยวชาญเช่นคุณ5 ตลาดแรงงานขนาดเล็ก
ในประเทศของคุณอาจมีเพียงสองบริษัทที่สนใจผู้เชี่ยวชาญเช่นคุณ หากคุณทำงานให้กับหนึ่งในนั้น คุณอาจถูกห้ามไม่ให้ทำงานร่วมกับคู่แข่งของพวกเขา คุณไม่มีที่ไป กระบวนการและการพัฒนาในยุคโลกาภิวัตน์และเทคนิคการสื่อสารโทรคมนาคมราคาถูกส่งผลให้ตลาดแรงงานทั่วโลกปรากฏขึ้น ตลาดโลกประกอบด้วยบริษัทต่างๆ ที่ยินดี (และสามารถ) ว่าจ้างนายจ้างในต่างประเทศ นอกจากนี้ยังประกอบด้วยนายจ้างที่เต็มใจ (และสามารถ) รับงานในบริษัทต่างชาติข้อได้เปรียบของตลาดแรงงานทั่วโลก
1 เงินเดือนต่ำกว่าในประเทศที่พัฒนาแล้ว แต่สูงกว่าในประเทศกำลังพัฒนา
หากคุณมาจากประเทศกำลังพัฒนาและคุณเป็นผู้เชี่ยวชาญตามความต้องการของตลาดแรงงานทั่วโลก เงินเดือนของคุณอาจแตกต่างกัน 5-10 เท่าในตลาดโลกและในตลาดท้องถิ่น คุณจะได้อะไรมากไปกว่าการใช้จ่ายเงินในประเทศของคุณ ไหลเข้าสู่เศรษฐกิจของประเทศ2 ประสบการณ์ กระบวนการทางธุรกิจที่เหนือกว่า
มีสามสิ่งที่สำคัญที่สุดที่งานของคุณมอบให้คุณ: ประสบการณ์ เงิน และการเชื่อมต่อ หากคุณคุ้นเคยกับการเอาแต่เงิน นั่นคือปัญหาของคุณ คุณจะได้รับประสบการณ์ที่มีค่าที่สุดหากคุณทำงานให้กับบริษัทชั้นนำของโลก พวกเขายินดีต้อนรับกระแสโลกาภิวัตน์ ดังนั้นการได้งานทำจึงง่ายกว่าที่คุณคิด เมื่อคุณเป็นพนักงานของบริษัท คุณมีโอกาสเห็นกระบวนการทางธุรกิจภายในทั้งหมดที่มีประสิทธิผลและไม่มีประสิทธิผล สิ่งที่คุณต้องทำคือดูและฟัง3 โอกาสทางอาชีพที่ยิ่งใหญ่
งานในบริษัทระหว่างประเทศขนาดใหญ่จะช่วยให้คุณเติบโตอย่างมืออาชีพและสร้างอาชีพ คุณอาจได้รับความสัมพันธ์ที่ดีจากทั่วโลก และนั่นมีประโยชน์มาก: ได้รับชื่อเสียงจากผู้เชี่ยวชาญที่มีคุณสมบัติสูง และบริษัทระหว่างประเทศไม่กี่แห่งอาจเสนอให้คุณสร้างอาชีพของคุณต่อไปโดยทำงานให้กับพวกเขา สิ่งที่คนเก่งต้องการคือโอกาส เขาจะคิดวิธีใช้มันด้วยตัวเขาเอง4 การเดินทางเพื่อธุรกิจ
คุณมักจะได้รับข้อเสนอให้เดินทางไปทำธุรกิจในต่างประเทศ โดยเฉพาะอย่างยิ่งหากบริษัทที่คุณทำงานมีหน่วยงานย่อยไม่กี่แห่งในต่างประเทศ อย่าละเลยโอกาสเหล่านั้น มันเป็นโอกาสดีที่จะได้เดินทางและรับความรู้และทักษะใหม่ๆ พูดคุยกับผู้คน อย่าลืมว่ายิ่งขอบเขตของคุณกว้างขึ้นเท่าใดคุณก็ยิ่งได้รับประโยชน์มากขึ้นเท่านั้น5 โอกาสในการย้ายไปประเทศที่คุณชอบ
บ่อยครั้งเมื่อคุณสร้างชื่อให้ตัวเองเป็นผู้เชี่ยวชาญที่มีคุณสมบัติสูง คุณจะได้รับข้อเสนอให้ย้าย (ทำงาน) ไปที่สำนักงานของนายจ้าง มันสะดวกมาก เมื่อถึงเวลานั้นคุณอาจเคยไปที่นั่นเพื่อทำธุรกิจและมีความรู้ดีเกี่ยวกับสถานที่ที่คุณกำลังจะไป คุณมีเพื่อนและคนรู้จักอยู่ที่นั่นแล้ว คุณจะได้งานที่ดีและเพื่อนร่วมงานที่ตอนนี้คุณสบายดี นั่นอาจเป็นเงื่อนไขการย้ายถิ่นฐานที่ดีที่สุดที่ฉันรู้ความต้องการของตลาดแรงงานทั่วโลก
1 อาชีพของคุณต้องตรงกับพวกเขา
ไม่ใช่ทุกอาชีพที่ตอบสนองความต้องการของตลาดโลก แต่หลายคนทำ และรายการนี้เติบโตอย่างต่อเนื่อง ฉันสามารถตั้งชื่อได้เป็นเวลานาน: การสนับสนุน การพัฒนา การวิจัย การออกแบบ เกือบทุกอย่างที่เกี่ยวข้องกับเว็บและคอมพิวเตอร์ หากอาชีพของคุณปรากฏขึ้นเมื่อ 20-30 ปีก่อน มีความเป็นไปได้สูงมากที่จะสามารถเป็นสากลได้อย่างง่ายดาย2 ราคาและคุณภาพ
เมื่อบริษัทต่างชาติเห็นว่าสามารถจ้างผู้เชี่ยวชาญที่มีคุณภาพสูงกว่าและในราคาที่ถูกกว่าในประเทศของคุณได้ ก็ยากที่จะต้านทาน คุณต้อง "ดีกว่าและถูกกว่า" หรือ "ถูกกว่ามาก" เพียงแค่ "ถูกกว่า" จะไม่เป็นที่พอใจของ บริษัท ต่างชาติเพราะมีความเสี่ยงสูงที่จะจ้างผู้เชี่ยวชาญในต่างประเทศ3 ภาษาอังกฤษ
ในศตวรรษที่ 21 ภาษาอังกฤษเป็นภาษาสากล หากคุณต้องการทำงานในตลาดโลกและได้รับประโยชน์ทั้งหมด แต่ภาษาอังกฤษไม่ใช่ภาษาแม่ของคุณ – เรียนรู้มัน ยิ่งระดับภาษาอังกฤษของคุณต่ำลงเท่าใด ข้อดีอีกสองข้อก็ยิ่งแข็งแกร่งเท่านั้นคุณมาถึงระดับใหม่แล้ว
ระดับ 8
1 Elly คำอธิบายของคอลเลกชัน
- เฮ้ อามีโก้ วันนี้ฉันอยากจะบอกคุณเกี่ยวกับคอลเลกชัน ใน Java คลาสที่มีจุดประสงค์หลักในการจัดเก็บชุดขององค์ประกอบอื่นๆ จะเรียกว่าคอลเลกชั่น/คอนเทนเนอร์ ตัวอย่างของคลาสที่คุณรู้จักคือ ArrayList - ใน Java คอลเลกชั่นจะแบ่งออกเป็นสามกลุ่มหลัก: Set, List และ Map - แล้วอะไรคือความแตกต่างระหว่างพวกเขา? - ฉันจะเริ่มต้นด้วยชุด ลองนึกภาพกองรองเท้า มันเป็นชุด ในชุด คุณสามารถเพิ่มองค์ประกอบ ค้นหา หรือลบออก แต่องค์ประกอบไม่มีคำสั่งที่เข้มงวด! - คำอธิบายสั้นเกินไป… -ทีนี้ลองนึกภาพรองเท้ากองเดิม คราวนี้วางเรียงรายไปตามผนัง ตอนนี้มีออเดอร์ ทุกองค์ประกอบมีหมายเลขของมัน ตัวอย่างเช่น คุณสามารถหา "คู่หมายเลข 7" ได้จากหมายเลขของมัน นี่คือรายการ คุณสามารถเพิ่มองค์ประกอบที่จุดเริ่มต้นหรือตรงกลางของรายการ หรือลบออกได้ สิ่งที่คุณต้องมีคือหมายเลขเท่านั้น - ก๊อตชา แล้วแผนที่ล่ะ? - ลองนึกภาพรองเท้าคู่เดียวกันแต่ตอนนี้ในแต่ละคู่มีป้ายกำกับ เช่น «Nick», «Joe» หรือ «Ann» นี่คือแผนที่ มักเรียกว่า «พจนานุกรม» ทุกองค์ประกอบมีชื่อเฉพาะที่คุณสามารถเข้าถึงได้ ชื่อเฉพาะขององค์ประกอบเรียกอีกอย่างว่าคีย์ และแผนที่คือชุดของคู่คีย์-ค่า คีย์ไม่จำเป็นต้องเป็นสตริง สามารถเป็นประเภทใดก็ได้ แผนที่ว่าเป็นคีย์ประเภทใดจำนวนเต็มเป็นจริงรายการ (มีความแตกต่างบางอย่าง) - ชัดเจน แต่ฉันต้องการดูตัวอย่างเพิ่มเติม - Risha จะยกตัวอย่างให้คุณฟัง และฉันต้องการเพิ่มคำอีกสองสามคำ - คอลเลคชันและคอนเทนเนอร์ทั้งหมดไม่ได้เก็บอะไรไว้เมื่อเพิ่งสร้างขึ้น แต่คุณสามารถเพิ่มองค์ประกอบเข้าไปได้ในภายหลัง พวกเขาจะเปลี่ยนขนาดแบบไดนามิก - โอ้ตอนนี้มันน่าสนใจ และคุณจะรู้ได้อย่างไรว่ามีกี่องค์ประกอบในคอลเลกชัน? - ในการทำเช่นนี้มีวิธีการsize( ) คอลเลกชันมีทุกสิ่งที่คุณต้องการ ฉันคิดว่าในสองสามบทเรียนคุณจะเห็นด้วยตัวคุณเองว่าคอลเลกชันเหล่านี้มีประโยชน์เพียงใด - ฉันหวังว่าอย่างนั้น.1 Risha รายชื่อคอลเลกชันและอินเทอร์เฟซทั้งหมด
- เฮ้ อามีโก้ - สวัสดี ริชา - ไลล่าบอกฉันว่าคุณต้องการตัวอย่างคอลเลกชันเพิ่มเติม ฉันจะให้คุณไม่กี่ ฉันต้องการแสดงรายการคอลเลกชันและอินเทอร์เฟซ: - Hum มากมาย มีสี่รายการ สามชุด และสี่แผนที่ - ใช่ สิ่งเหล่านี้คือการใช้งานอินเทอร์เฟซต่างๆ รายการ ชุด และแผนที่ - และความแตกต่างระหว่างการใช้งานคืออะไร? - นี่คือสิ่งที่เราจะพูดถึงในวันนี้ รอสักครู่ - บางทีคุณอาจมีคำถามอยู่แล้ว - ฉันรู้วิธีการแสดงรายการบนหน้าจอ และจะแสดง Set และ Map อย่างไร? - องค์ประกอบของรายการมีลำดับที่เข้มงวด ดังนั้นจึงอาจแสดงได้ง่ายๆ ด้วยตัวเลข ชุดและแผนที่ไม่มีลำดับองค์ประกอบที่เข้มงวด จริงๆ แล้ว ลำดับขององค์ประกอบอาจเปลี่ยนแปลงได้เมื่อคุณเพิ่มหรือลบรายการใดๆ - ว้าว น่าสนใจ! - ดังนั้นจึงมีการประดิษฐ์วัตถุพิเศษ ( ตัววนซ้ำ ) เพื่อทำงานร่วมกับองค์ประกอบคอลเลกชัน คุณสามารถใช้องค์ประกอบเหล่านี้เพื่อเรียกใช้องค์ประกอบทั้งหมดของคอลเลกชัน แม้ว่าองค์ประกอบเหล่านั้นจะไม่มีตัวเลข มีเพียงชื่อ (แผนที่) หรือไม่มีชื่อเลย (ชุด) - ตัวอย่าง: - ว้าว! และทั้งหมดนี้หมายความว่าอย่างไร? - ในความเป็นจริงมันค่อนข้างง่าย ขั้นแรก เราได้รับวัตถุตัวทำซ้ำพิเศษจากคอลเลกชัน มันมีแค่สองวิธี 1 วิธีถัดไป () คือการส่งคืนองค์ประกอบถัดไปของคอลเลกชัน 2 วิธีการ hasNext() คือการตรวจสอบว่ามีองค์ประกอบที่ยังไม่ส่งคืนโดย next() หรือไม่ - ใช่. มันจะชัดเจนขึ้น ให้ฉันบอกคุณว่าฉันเข้าใจอย่างไร - ดังนั้น เพื่อให้ได้วัตถุตัววนซ้ำที่มีมนต์ขลังนี้ ขั้นแรก คุณต้องเรียกใช้เมธอด iterator() ในคอลเล็กชัน - จากนั้นฉันจะได้รับทีละรายการในลูปในขณะที่มีรายการที่ไม่ได้รับคืน ฉันได้รับองค์ประกอบคอลเลกชันโดยเรียก next() และตรวจสอบว่ามีองค์ประกอบในตัววนซ้ำโดยใช้ hasNext() หรือไม่ ฉันถูกไหม? - ใช่บางอย่างเช่นนั้น และตอนนี้สิ่งที่น่าสนใจที่สุด - ใน Java มีสัญกรณ์สั้นๆ ของการใช้ iterator เช่นเดียวกับwhileและforมีการเพิ่มโอเปอเรเตอร์พิเศษอีกตัว « for each » ในรหัสตัวดำเนิน การ นี้แสดงด้วยคำหลักเดียวกันสำหรับ- ตัวดำเนินการ สำหรับแต่ละรายการใช้กับคอลเลกชันและคอนเทนเนอร์เท่านั้น มันใช้ตัววนซ้ำแบบซ่อนเร้น - ให้ฉันแสดงวิธีการทำงานกับ iterator ทั้งหมดและโดยย่อ: - โปรดทราบ: ไม่มีคำสีเขียวหรือสีแดงในตารางด้านขวา ในความเป็นจริง 3 บรรทัดถูกแทนที่ด้วยบรรทัดเดียว: - มันดูสวยงาม ฉันชอบวิธีนี้มากกว่า! - มาดูตัวอย่างเดียวกันกับด้านบนนี้ในรูปแบบสั้นๆ เท่านั้น: - มันเป็นเรื่องที่แตกต่างอย่างสิ้นเชิง! - ฉันดีใจที่คุณชอบมัน3 ดิเอโก งานสะสม
- เฮ้ อามีโก้ ฉันต้องการให้งานรวบรวมบางอย่างแก่คุณ:งาน | |
---|---|
1 | 1. โรงงาน HashSet สร้างคอ ลเลกชัน HashSetขององค์ประกอบประเภทสตริง เพิ่มสตริง 10 สายในคอลเลกชัน: แตงโม กล้วย เชอร์รี่ ลูกแพร์ เมล่อน แบล็กเบอร์รี่ โสม สตรอเบอร์รี่ ไอริส และมันฝรั่ง แสดงเนื้อหาของคอลเลกชันบนหน้าจอ แต่ละรายการควรอยู่ในบรรทัดใหม่ ดูการเปลี่ยนแปลงลำดับขององค์ประกอบที่เพิ่มเข้ามา |
2 | 2. HashMap จำนวน 10 คู่ สร้างคอลเลกชันHashMap<String, String>วางสตริง 10 คู่ลงในคอลเลกชัน: แตงโม - เบอร์รี่, กล้วย - หญ้า, เชอร์รี่ - เบอร์รี่, ลูกแพร์ - ผลไม้, แตงโม - ผัก, แบล็กเบอร์รี่ - เบอร์รี่, โสม - ราก, สตรอเบอร์รี่ - เบอร์รี่, ไอริส - ดอกไม้, มันฝรั่ง - หัว แสดงเนื้อหาของคอลเลกชันบนหน้าจอ แต่ละรายการควรอยู่ในบรรทัดใหม่ ตัวอย่างเอาต์พุต (แสดงเพียงสตริงเดียว): มันฝรั่ง - หัว |
3 | 3. คอลเลกชัน HashMap ของแมว มีคลาส Catซึ่งมีชื่อ ฟิลด์ (ชื่อ, สตริง) สร้างคอลเลกชันHashMap<String, Cat > เพิ่มแมว 10 ตัวโดยใช้ชื่อแมวเป็นกุญแจ แสดงผลออกทางจอภาพ แต่ละรายการควรอยู่ในบรรทัดใหม่ |
4 | 4. แสดงรายการคีย์บนหน้าจอ มีคอลเล็กชันHashMap<String, String>ซึ่งมีสตริงที่แตกต่างกัน 10 รายการ แสดงรายการปุ่มบนหน้าจอ แต่ละรายการควรอยู่ในบรรทัดใหม่ |
5 | 5. แสดงรายการค่าบนหน้าจอ มีคอลเล็กชันHashMap<String, String>มีสตริงที่แตกต่างกัน 10 รายการ แสดงรายการค่าต่างๆ บนหน้าจอ แต่ละรายการควรอยู่ในบรรทัดใหม่ |
6 | 6. คอลเลกชัน HashMap ของ Object มีคอลเลกชันHashMap<String, Object>ซึ่งมีคู่วัตถุต่างกัน 10 คู่ แสดงเนื้อหาของคอลเลกชันบนหน้าจอ แต่ละรายการควรอยู่ในบรรทัดใหม่ ตัวอย่างเอาต์พุต (แสดงเพียงสตริงเดียว): Sim - 5 |
4 คิม บทนำประเภทวันที่
- เฮ้ อามีโก้ ฉันอยากจะบอกคุณเกี่ยวกับประเภทที่น่าสนใจ – วันที่ ประเภทนี้ทำให้คุณสามารถจัดเก็บวันที่และเวลา ตลอดจนการวัดช่วงเวลา - นั่นดูมีความหวัง ต่อไป. - ทุกวัตถุ Date เก็บข้อมูลเวลา มันถูกจัดเก็บในรูปแบบที่น่าสนใจมาก - จำนวนมิลลิวินาทีที่ผ่านไปตั้งแต่วันที่ 1 มกราคม 1970 GMT - ว้าว! - ใช่. ตัวเลขนี้มีขนาดใหญ่มากจนไม่พอดีกับintคุณต้องเก็บไว้ในlong แต่มันง่ายมากที่จะคำนวณความแตกต่างระหว่างสองวัน: คุณต้องลบตัวเลขหนึ่งออกจากอีกตัวเลขหนึ่งเพื่อทราบความแตกต่างที่ถูกต้องเป็นมิลลิวินาที ในอนาคตมันจะทำให้ชีวิตของคุณง่ายขึ้น เมื่อคุณประสบปัญหาเกี่ยวกับเขตเวลา - และสิ่งที่น่าสนใจที่สุดคืออ็อบเจกต์ Date ทุกตัวจะเริ่มต้นตามเวลาที่สร้าง หากต้องการตรวจสอบเวลาปัจจุบัน คุณเพียงแค่ต้องสร้างวัตถุ - และวิธีการทำงานกับมัน? - นี่คือตัวอย่างบางส่วน: - เมธอดgetTime()ส่งคืนจำนวนมิลลิวินาทีที่จัดเก็บไว้ในออบเจกต์ Date - เมธอดafter()ตรวจสอบว่าวันที่ซึ่งเมธอดนี้ถูกเรียก มาหลังจากวันที่ผ่านไปหรือไม่ - เมธอดgetHours() , getMinutes() , getSeconds()คืนค่าจำนวนชั่วโมง นาที และวินาทีสำหรับวัตถุที่ถูกเรียกใช้ - นอกจากนี้ ในตัวอย่างสุดท้าย คุณเห็นว่าเป็นไปได้ที่จะจัดการวันที่/เวลาที่จัดเก็บไว้ในวัตถุวันที่. เราได้เวลาและวันที่ปัจจุบัน จากนั้นตั้งค่าชั่วโมง นาที และวินาทีเป็นศูนย์ ในทำนองเดียวกัน เราตั้งค่าเดือนเป็นมกราคม และวันของเดือนเป็น 1 ตอนนี้yearStartTime วัตถุ เก็บวันที่และเวลาของวันที่ 1 มกราคม 0 ชั่วโมง 0 นาที และ 0 วินาที - จากนั้นเราจะได้วันที่ปัจจุบันcurrentTimeอีกครั้ง และคำนวณความแตกต่างระหว่างสองวันในหน่วยมิลลิวินาที ฉันกำลังพูดถึงmsTimeDistance - จากนั้นหารmsTimeDistanceด้วยจำนวนมิลลิวินาทีในหนึ่งวัน แล้วรับจำนวนวันทั้งหมดที่ผ่านไปตั้งแต่ต้นปีจนถึงปัจจุบัน! - ว้าว! ที่น่ากลัว!5 Elly, ArrayList กับ LinkedList
- ปรับความคิดของคุณสักหน่อยดีไหม? ฉันหวังว่ามันยังไม่ปลิว - ในตารางของคอนเทนเนอร์และคอลเล็กชันด้านบน คุณเห็นว่าอินเทอร์เฟซเดียวกันสามารถใช้งานหลายรายการได้ ตอนนี้ฉันจะบอกคุณว่าทำไม และอะไรคือความแตกต่างระหว่างArrayListและLinkedList - สิ่งสำคัญคือคอลเลกชั่นสามารถนำไปใช้ได้หลายวิธี และไม่มีการใช้งานที่ถูกต้องแม้แต่วิธีเดียว ในแนวทางหนึ่ง การดำเนินการบางอย่างรวดเร็วและการดำเนินการที่เหลือช้า ในอีกแนวทางหนึ่งก็ตรงกันข้าม ไม่มีวิธีแก้ปัญหาใดที่สมบูรณ์แบบ - ดังนั้นจึงมีการตัดสินใจที่จะดำเนินการบางอย่างในคอลเล็กชันเดียวกัน การใช้งานแต่ละครั้งได้รับการปรับให้เหมาะสมสำหรับการดำเนินงานช่วงแคบๆดังนั้นจึงมีคอลเลกชันที่แตกต่างกัน ลองพิจารณาตัวอย่างของสองคลาส- ArrayListและLinkedList - ArrayListถูกนำมาใช้ภายในเป็นอาร์เรย์ปกติ ดังนั้น เมื่อมีการแทรกองค์ประกอบลงตรงกลาง องค์ประกอบทั้งหมดจะต้องถูกเลื่อนไปทีละองค์ประกอบ จากนั้นจึงจะสามารถแทรกองค์ประกอบใหม่ลงในพื้นที่ว่างได้ อย่างไรก็ตาม การดำเนินการรับและแก้ไของค์ประกอบ ( get() และ set() ) จะถูกนำไปใช้อย่างรวดเร็วใน ArrayList เพราะพวกเขาทำเพียงแค่เข้าถึงองค์ประกอบที่เหมาะสมของอาร์เรย์ด้านในเท่านั้น - มีการนำ LinkedListไปใช้ในลักษณะอื่น มันถูกนำไปใช้เป็นรายการที่เชื่อมโยง: ชุดขององค์ประกอบแต่ละรายการ ซึ่งแต่ละองค์ประกอบจะเก็บการอ้างอิงถึงองค์ประกอบถัดไปและก่อนหน้า หากต้องการแทรกองค์ประกอบลงตรงกลางรายการ วิธีการ add() เพียงแค่เปลี่ยนการอ้างอิงไปยังเพื่อนบ้านในอนาคต อย่างไรก็ตาม ในการรับองค์ประกอบที่มีหมายเลข 130 เมธอด get() จำเป็นต้องทำงานอย่างต่อเนื่องผ่านวัตถุทั้งหมดตั้งแต่ 0 ถึง 130 กล่าวอีกนัยหนึ่งset และ get here นั้นช้ามาก ดูตารางด้านล่าง: - ใช่ เริ่มชัดเจนขึ้นแล้ว มีเกณฑ์หรือกฎเกณฑ์ใด ๆ คอลเลกชันที่ดีที่สุด? - เพื่อทำให้ง่ายขึ้น นี่คือกฎต่อไปนี้: หากคุณกำลังจะแทรก (หรือลบ) องค์ประกอบจำนวนมากในช่วงกลางของคอลเลกชัน คุณควรใช้LinkedList มิฉะนั้นให้ใช้ArrayList. - ฉันจะอธิบายโครงสร้างภายในของรายการเหล่านี้ในระดับอาวุโส จนถึงตอนนี้เราจะเรียนรู้วิธีใช้งาน6 Diego, งาน: วัดประสิทธิภาพของทั้งสองรายการ
- เป็นคุณนั้นเอง. ฉันเริ่มเบื่อ คุณเคยไปที่ไหน นี่คืองาน - พวกเขาน่าสนใจไหม? - แน่นอน! น่าสนใจมาก:งานที่น่าสนใจมาก | |
---|---|
1 | 1. สร้างสองรายการ LinkedList & ArrayList สร้างสองรายการ: LinkedListและArrayList |
2 | 2. ทำ 10,000 การแทรกและการลบ ทำ 10,000 การแทรก การลบ การเรียกใช้เมธอดget()และset()สำหรับ arrayList และ LinkedList |
3 | 3. วัดระยะเวลาที่จะทำการแทรก 10,000 รายการสำหรับแต่ละรายการ วัดว่าใช้เวลานานเท่าใดในการแทรก 10,000 รายการสำหรับแต่ละรายการ เมธอดgetTimeMsOfInsert()ควรส่งคืนเวลาของการดำเนินการเป็นมิลลิวินาที |
4 | 4. วัดเวลาที่จำเป็นในการเรียก get หมื่นครั้งสำหรับแต่ละรายการ วัดเวลาที่ต้องใช้ในการเรียก get() หนึ่งหมื่นครั้งสำหรับแต่ละรายการ เมธอดgetTimeMsOfGet()ควรส่งคืนเวลาของการดำเนินการเป็นมิลลิวินาที |
5 | 5. สี่วิธี ใช้ 4 วิธี เมธอดควรส่งคืนรายการที่เหมาะสมที่สุดสำหรับการดำเนินการที่ระบุ (เพื่อรับมือกับการดำเนินการจำนวนมากอย่างรวดเร็ว) ไม่จำเป็นต้องวัด |
7 Elly: ตั้งค่าและทำแผนที่ สิ่งที่สามารถทำได้กับพวกเขา
- คุณยังไม่เหนื่อยอีกเหรอ? ไม่ล่ะ เรามาต่อกันเลย ฉันอยากจะอธิบายว่าSetและMapคือ อะไร และมีการดำเนินงานอะไรบ้าง - เซตเป็นกลุ่มของวัตถุที่ไม่ได้แจกแจง คุณลักษณะหลักของSetคือมีวัตถุเฉพาะเท่านั้นกล่าวคือพวกมันแตกต่างกันทั้งหมด นั่นคือสิ่งที่คุณสามารถทำได้: - แค่นั้นเหรอ? - ที่จริงใช่ คุณยังสามารถกำหนดจำนวนองค์ประกอบโดยใช้เมธอดsize( ) - แล้วแผนที่ ล่ะ ? - แผนที่เป็นชุดคู่ เป็นชุดเดียวกัน ไม่ใช่ขององค์ประกอบเดียว แต่เป็นของคู่คีย์-ค่า ข้อจำกัดเพียงอย่างเดียวก็คือวัตถุชิ้นแรกในคู่ซึ่งเรียกว่าคีย์จะต้องไม่ซ้ำกัน แผนที่ไม่สามารถมีสองคู่กับคีย์เดียวกัน - นั่นคือสิ่งที่เราทำได้ด้วยMap : - สิ่งนี้น่าสนใจกว่าที่ตั้งไว้มาก - ใช่ แม้ว่าแผนที่จะไม่เป็นที่นิยมเท่ารายการ แต่ก็ใช้สำหรับงานหลายอย่าง8 งานดิเอโก ชุดและแผนที่
- ฉันหวังว่าคุณจะได้เรียนรู้แล้วว่า Set และ Map คืออะไร? ต่อไปนี้คืองานตั้งค่าและแผนที่บางส่วนงานรวบรวม | |
---|---|
1 | 1. 20 คำที่ขึ้นต้นด้วย «L» สร้างชุดของสตริง ( Set<String> ) ใส่ 20 คำที่ขึ้นต้นด้วย «L» ลงไป |
2 | 2. ลบตัวเลขทั้งหมดที่มากกว่า 10 สร้างชุดตัวเลข ( Set<Integer> ) ใส่ตัวเลขที่แตกต่างกัน 20 ตัวลงในชุดนั้น นำตัวเลขทั้งหมดที่มากกว่า 10 ออกจากชุด |
3 | 3. ชื่อและนามสกุลที่เหมือนกัน สร้างพจนานุกรม ( แผนที่<String, String> ) และเพิ่มสิบรายการตามรูปแบบ «นามสกุล» - «ชื่อ» ตรวจสอบว่ามีกี่คนที่มีชื่อหรือนามสกุลตรงกับชื่อที่กำหนด |
4 | 4. ลบคนที่เกิดในฤดูร้อนทั้งหมด สร้างพจนานุกรม ( แผนที่<String, Date> ) และเพิ่มสิบรายการตามรูปแบบ «แผงคอสุดท้าย» - «วันเกิด» ลบทุกคนที่เกิดในฤดูร้อนออกจากแผนที่ |
5 | 5. ลบคนที่มีชื่อเหมือนกัน สร้างพจนานุกรม ( แผนที่<String, String> ) และเพิ่มสิบรายการตามรูปแบบ «นามสกุล» - «ชื่อ» ลบคนที่มีชื่อเหมือนกัน |
9 อาจารย์ บรรยายเรื่องการสะสม
- ฮ่าฮ่าฮ่า ในที่สุดเราก็ไปถึงคอลเลกชัน ฉันยังมีการบรรยายที่ยอดเยี่ยมจากตอนที่ฉันเป็นนักเรียน แน่นอนว่ามีฝุ่นเล็กน้อย แต่โดยพื้นฐานแล้วดีมาก นี่คือบันทึกของฉัน: Java Collections (Oracle Documentation) Collections in Java (Java T point) Java Collections Framework (tutorials point) Java Collections Tutorial10 ฮูลิโอ
- พระเจ้าผู้ดี! คุณทำงานหนักเกินไปอีกแล้ว! ฉันบอกแล้วใช่ไหมว่าอย่าทำงานมาก? ให้ฉันเล่นบางอย่างเพื่อช่วยให้คุณผ่อนคลาย:11 กัปตันกระรอก
- สวัสดีทหาร! - สวัสดีตอนเช้าครับท่าน! - ฉันมีข่าวที่ยอดเยี่ยมสำหรับคุณ นี่คือการตรวจสอบอย่างรวดเร็วเพื่อเสริมสร้างทักษะของคุณ ทำทุกวันและคุณจะเพิ่มพูนทักษะของคุณอย่างรวดเร็ว งานได้รับการออกแบบมาเป็นพิเศษให้ทำใน Intellij IDEAงานเพิ่มเติมที่ต้องทำใน Intellij Idea | |
---|---|
1 | 1. ชุดแมว 1. สร้างCat คลาสคงที่สาธารณะภายในคลาส Solution . 2. ใช้วิธีการcreateCats()ซึ่งควรสร้างชุดแมวและเพิ่มแมวสามตัวเข้าไป 3. ใน วิธีการ หลักให้นำแมวออกจากชุดแมว 4. ใช้วิธีการprintCats()ซึ่งควรแสดงแมวทั้งหมดที่เหลืออยู่ในชุดบนหน้าจอ แมวทุกตัวควรอยู่ในบรรทัดใหม่ |
2 | 2. ชุดสัตว์ทั้งหมด 1. สร้างคลาสคงที่สาธารณะ Cat and Dogภายในคลาส Solution 2. ใช้วิธีการcreateCats()ซึ่งควรส่งคืนชุดแมว 4 ตัว 3. ใช้วิธีการcreateDogs()ซึ่งควรส่งคืนชุดสุนัข 3 ตัว 4. ใช้วิธีการjoin()ซึ่งควรส่งคืนชุดรวมของสัตว์ทั้งหมด ทั้งแมวและสุนัข 5. ใช้วิธีการremoveCats()ซึ่งควรลบแมวทั้งหมดที่อยู่ในชุดแมวออกจากสัตว์เลี้ยงชุด 6. ใช้วิธีการprintPets()ซึ่งควรแสดงหน้าจอสัตว์ทั้งหมดที่อยู่ในนั้น สัตว์แต่ละตัวควรอยู่ในบรรทัดใหม่ |
3 | 3. คนที่ชื่อและ/หรือนามสกุลเหมือนกัน 1. สร้างพจนานุกรม ( Map<String, String> ) และเพิ่ม 10 คนตามแบบ «นามสกุล» - «ชื่อแรก». 2. ใน 10 คนนี้ ให้มีคนชื่อซ้ำกัน 3. ใน 10 คนนี้ ให้มีคนนามสกุลเดียวกัน 4. แสดงเนื้อหาบนหน้าจอของแผนที่ |
4 | 4. จำนวนขั้นต่ำของ N 1. อ่านจากแป้นพิมพ์หมายเลขN . 2. อ่านจำนวนเต็มจากแป้นพิมพ์Nและเติมรายการโดยใช้เมธอด getIntegerList ( ) 3. ค้นหาจำนวนขั้นต่ำในบรรดาองค์ประกอบของรายการโดยใช้เมธอด getMinimum ( ) |
5 | 5. หยุดดู ฟัง ตอนนี้ตัวพิมพ์ใหญ่ เขียนโปรแกรมที่ควรอ่านจากแป้นพิมพ์เป็นสตริง โปรแกรมควรแทนที่ตัวอักษรตัวแรกของคำทั้งหมดในข้อความด้วยตัวพิมพ์ใหญ่ แสดงผลออกทางจอภาพ ตัวอย่างอินพุต: หยุดดู ฟัง เอาต์พุตตัวอย่าง: หยุดดู ฟัง |
6 | 6. ทั้งครอบครัวอยู่ด้วยกัน 1. สร้างคลาส Humanด้วยฟิลด์: String name , boolean sex , int age , ArrayList<Human> children 2. สร้างวัตถุ 9 อย่างและเติมเต็มในลักษณะที่จะได้รับปู่สองคน, ย่าสองคน, พ่อ, แม่และลูกสามคน 3. แสดง วัตถุ มนุษย์ทั้งหมดบนหน้าจอ |
7 | 7. ย้ายหนึ่งตัวแก้ไขแบบสแตติก ย้ายตัวแก้ไขแบบคงที่หนึ่งตัวเพื่อให้โค้ดคอมไพล์ |
8 | 8. ตัวเลขที่ใหญ่ที่สุดห้า ตัว สร้างอาร์เรย์ของตัวเลข 20 ตัว เติมด้วยตัวเลขที่อ่านจากแป้นพิมพ์ แสดงตัวเลขสูงสุดห้าตัวบนหน้าจอ |
9 | 9. การทำงานกับวัน ที่ 1 ใช้เมธอดisDateOdd(String date)เพื่อให้คืนค่าจริง หากจำนวนวันนับจากต้นปีเป็นเลขคี่ มิฉะนั้นจะส่งกลับค่าเท็จ 2. วันที่ของสตริงถูกส่งในรูปแบบ1 พฤษภาคม 2013 1 มกราคม 2000 → จริง 2 มกราคม 2020 → เท็จ |
งานโบนัส | |
---|---|
1 | 1. เลขเดือน. โปรแกรมควรอ่านชื่อเดือนจากแป้นพิมพ์และแสดงหน้าจอเป็นตัวเลขดังนี้ « พฤษภาคมเป็นเดือนที่ 5 » |
2 | 2. เพิ่มฟังก์ชั่นใหม่ให้กับโปรแกรม งานเก่า:โปรแกรมกำหนดว่าครอบครัวใด (นามสกุล) อาศัยอยู่ในบ้านตามจำนวนที่ระบุ ภารกิจใหม่:โปรแกรมควรทำงานกับเมือง ไม่ใช่บ้านเลขที่ ตัวอย่างอินพุต: Washington the Smiths New York the Browns London the Johnsons London ตัวอย่างเอาต์พุต: the Johnsons |
3 | 3. การเรียนรู้และฝึกฝนอัลกอริทึม งาน:โปรแกรมควรอ่านจากแป้นพิมพ์ 20 คำและแสดงตามลำดับตัวอักษร |