คำถามติดแท็ก collections

API การรวบรวมให้นักพัฒนามีชุดของคลาสและอินเทอร์เฟซที่ทำให้ง่ายต่อการจัดการคอลเลกชันของวัตถุ


30
ฉันจะวนซ้ำแต่ละรายการอย่างมีประสิทธิภาพใน Java Map ได้อย่างไร
หากฉันมีวัตถุที่ใช้Mapอินเทอร์เฟซใน Java และฉันต้องการย้ำผ่านทุกคู่ที่อยู่ในนั้นวิธีที่มีประสิทธิภาพที่สุดในการผ่านแผนที่คืออะไร? การเรียงลำดับองค์ประกอบจะขึ้นอยู่กับการใช้แผนที่เฉพาะที่ฉันมีสำหรับอินเทอร์เฟซหรือไม่

30
เมื่อใดที่จะใช้ LinkedList ผ่าน ArrayList ใน Java
ฉันเป็นคนหนึ่งที่เคยใช้: List<String> names = new ArrayList<>(); ฉันใช้อินเทอร์เฟซเป็นชื่อประเภทสำหรับการพกพาดังนั้นเมื่อฉันถามคำถามเช่นสิ่งเหล่านี้ฉันสามารถทำงานซ้ำรหัสของฉันได้ เมื่อควรจะLinkedListนำมาใช้มากกว่าArrayListและในทางกลับกัน?

30
การเริ่มต้นของ ArrayList ในหนึ่งบรรทัด
ฉันต้องการสร้างรายการตัวเลือกสำหรับการทดสอบ ตอนแรกฉันทำสิ่งนี้: ArrayList<String> places = new ArrayList<String>(); places.add("Buenos Aires"); places.add("Córdoba"); places.add("La Plata"); จากนั้นฉันปรับโครงสร้างโค้ดอีกครั้งดังนี้: ArrayList<String> places = new ArrayList<String>( Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); มีวิธีที่ดีกว่าในการทำเช่นนี้?

30
จัดเรียงแผนที่ <คีย์ค่า> ตามค่า
ฉันค่อนข้างใหม่กับ Java และมักพบว่าฉันต้องเรียงลำดับMap&lt;Key, Value&gt;ค่า เนื่องจากค่านั้นไม่ซ้ำกันฉันจึงพบว่าฉันแปลงค่าkeySetเป็นarrayและเรียงลำดับอาร์เรย์นั้นผ่านการจัดเรียงอาร์เรย์ด้วยตัวเปรียบเทียบแบบกำหนดเองที่เรียงลำดับตามค่าที่เกี่ยวข้องกับคีย์ มีวิธีที่ง่ายกว่านี้ไหม?

25
วนซ้ำผ่านคอลเลกชันหลีกเลี่ยง ConcurrentModificationException เมื่อลบวัตถุในลูป
เราทุกคนรู้ว่าคุณไม่สามารถทำสิ่งต่อไปนี้ได้เนื่องจากConcurrentModificationException: for (Object i : l) { if (condition(i)) { l.remove(i); } } แต่บางครั้งก็ใช้งานได้ แต่ก็ไม่เสมอไป นี่คือรหัสเฉพาะบางส่วน: public static void main(String[] args) { Collection&lt;Integer&gt; l = new ArrayList&lt;&gt;(); for (int i = 0; i &lt; 10; ++i) { l.add(4); l.add(5); l.add(6); } for (int i : l) { if (i == …

30
ฉันจะเริ่มต้นแผนที่แบบคงที่ได้อย่างไร
คุณจะเริ่มต้นคงที่Mapใน Java อย่างไร วิธีที่หนึ่ง: แบบเริ่มต้นคงที่ วิธีที่สอง: ตัวเริ่มต้นอินสแตนซ์ (คลาสย่อยแบบไม่ระบุชื่อ) หรือวิธีอื่น ๆ ? ข้อดีและข้อเสียของแต่ละข้อคืออะไร นี่คือตัวอย่างที่แสดงวิธีการสองวิธี: import java.util.HashMap; import java.util.Map; public class Test { private static final Map&lt;Integer, String&gt; myMap = new HashMap&lt;&gt;(); static { myMap.put(1, "one"); myMap.put(2, "two"); } private static final Map&lt;Integer, String&gt; myMap2 = new HashMap&lt;&gt;(){ { put(1, "one"); put(2, …

12
วิธีเริ่มต้น HashMap โดยตรง (ตามตัวอักษร) ได้อย่างไร
มีวิธีการเริ่มต้น Java HashMap เช่นนี้ไหม: Map&lt;String,String&gt; test = new HashMap&lt;String, String&gt;{"test":"test","test":"test"}; สิ่งที่จะเป็นไวยากรณ์ที่ถูกต้อง? ฉันไม่พบอะไรเกี่ยวกับเรื่องนี้ เป็นไปได้ไหม ฉันกำลังมองหาวิธีที่สั้นที่สุด / เร็วที่สุดในการใส่ค่า "สุดท้าย / คงที่" ในแผนที่ที่ไม่เคยเปลี่ยนแปลงและเป็นที่รู้จักล่วงหน้าเมื่อสร้างแผนที่


15
ประสิทธิภาพของ Java“ การรั้งสองครั้งเริ่มต้น”?
ตั้งค่าไว้ที่Stack Overflow แล้วใช่ไหม : Чтотакое double brace และต่อไป ในคุณสมบัติที่ซ่อนของ Javaคำตอบด้านบนกล่าวถึงคู่รั้งการเริ่มต้นด้วยมากไวยากรณ์ล่อลวง: Set&lt;String&gt; flavors = new HashSet&lt;String&gt;() {{ add("vanilla"); add("strawberry"); add("chocolate"); add("butter pecan"); }}; สำนวนนี้สร้างคลาสภายในที่ไม่ระบุชื่อโดยมีเพียง initializer อินสแตนซ์ซึ่งมัน "สามารถใช้วิธีการใด ๆ [... ] ในขอบเขตที่มี" คำถามหลัก: นี่มันไม่มีประสิทธิภาพเท่าที่ฟังดูไหม? การใช้งานควรถูก จำกัด เพียงการเริ่มต้นครั้งเดียวหรือไม่? (และแน่นอนแสดงออก!) คำถามที่สอง: HashSet ใหม่จะต้องเป็น "this" ที่ใช้ใน initializer อินสแตนซ์ ... ทุกคนสามารถแสดงความเห็นต่อกลไกได้หรือไม่? คำถามที่สาม: สำนวนนี้คลุมเครือเกินไปที่จะใช้ในรหัสการผลิตหรือไม่ สรุป:คำตอบที่ดีมากขอบคุณทุกคน ในคำถาม (3) …


18
วิธีการแปลง Array เป็น Set ใน Java
ฉันต้องการแปลงอาเรย์เป็น Set ใน Java มีวิธีที่ชัดเจนในการทำเช่นนี้ (เช่นมีวง) แต่ฉันต้องการบางสิ่งบางอย่าง neater เล็กน้อยบางอย่างเช่น: java.util.Arrays.asList(Object[] a); ความคิดใด ๆ
717 java  collections  arrays  set 

13
วิธีแปลง Map เป็น List ใน Java
วิธีที่ดีที่สุดในการแปลง a Map&lt;key,value&gt;เป็นList&lt;value&gt;คืออะไร? แค่วนซ้ำค่าทั้งหมดและใส่ในรายการหรือฉันจะมองอะไรบางอย่าง?
675 java  list  collections  map 



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.