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

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

5
รวมหลายคอลเลกชันเป็นคอลเลกชันเชิงตรรกะเดียว?
สมมติว่าฉันมีคอลเล็กชันจำนวนคงที่ (เช่น 3 ArrayLists) ในฐานะสมาชิกของคลาส ตอนนี้ฉันต้องการเปิดเผยองค์ประกอบทั้งหมดไปยังคลาสอื่น ๆ เพื่อให้พวกเขาสามารถทำซ้ำองค์ประกอบทั้งหมดได้อย่างง่ายดาย (ควรอ่านอย่างเดียว) ฉันใช้คอลเลกชัน guava และฉันสงสัยว่าฉันจะใช้ guava iterables / iterators เพื่อสร้างมุมมองเชิงตรรกะบนคอลเลกชันภายในได้อย่างไรโดยไม่ต้องทำสำเนาชั่วคราว
110 java  collections  guava 

8
อะไรคือวิธีที่ดีที่สุดในการติดตั้งพจนานุกรมเธรดที่ปลอดภัย
ฉันสามารถใช้พจนานุกรมเธรดปลอดภัยใน C # ได้โดยหามาจาก IDictionary และกำหนดอ็อบเจ็กต์ SyncRoot ส่วนตัว: public class SafeDictionary<TKey, TValue>: IDictionary<TKey, TValue> { private readonly object syncRoot = new object(); private Dictionary<TKey, TValue> d = new Dictionary<TKey, TValue>(); public object SyncRoot { get { return syncRoot; } } public void Add(TKey key, TValue value) { lock (syncRoot) { …

15
ผู้สร้าง HashMap
Guava ให้วิธีการโรงงานที่ยอดเยี่ยมสำหรับประเภท Java แก่เราเช่นMaps.newHashMap(). แต่ยังมีผู้สร้างสำหรับแผนที่ java ด้วยหรือไม่? HashMap<String,Integer> m = Maps.BuildHashMap. put("a",1). put("b",2). build();
109 java  collections  guava 

8
เพิ่มช่วงไปยังคอลเลกชัน
เพื่อนร่วมงานถามฉันในวันนี้ว่าจะเพิ่มช่วงลงในคอลเล็กชันได้อย่างไร Collection<T>เขามีชั้นเรียนที่สืบทอดจาก มีคุณสมบัติรับอย่างเดียวประเภทนั้นที่มีบางรายการอยู่แล้ว เขาต้องการเพิ่มรายการในคอลเล็กชันอื่นในคอลเล็กชันคุณสมบัติ เขาทำแบบ C # 3-friendly ได้อย่างไร? (สังเกตข้อ จำกัด เกี่ยวกับคุณสมบัติ get-only ซึ่งป้องกันโซลูชันเช่นการทำ Union และการกำหนดใหม่) แน่นอน foreach กับ Property แอดจะทำงาน แต่List<T>AddRange สไตล์จะดูหรูหรากว่ามาก ง่ายพอที่จะเขียนวิธีการขยาย: public static class CollectionHelpers { public static void AddRange<T>(this ICollection<T> destination, IEnumerable<T> source) { foreach (T item in source) { destination.Add(item); } } } แต่ฉันมีความรู้สึกว่าฉันกำลังคิดค้นล้อใหม่ ฉันไม่พบอะไรในที่คล้ายกันSystem.Linqหรือmorelinq …

8
ฉันจะเริ่มต้นรายการ C # ในบรรทัดเดียวกับที่ฉันประกาศได้อย่างไร (ตัวอย่างการรวบรวมสตริงที่ไม่สามารถคำนวณได้ของ IE)
ฉันกำลังเขียนรหัสทดสอบของฉันและฉันไม่ต้องการเขียน: List<string> nameslist = new List<string>(); nameslist.Add("one"); nameslist.Add("two"); nameslist.Add("three"); ฉันชอบที่จะเขียน List<string> nameslist = new List<string>({"one", "two", "three"}); อย่างไรก็ตาม {"one", "two", "three"} ไม่ใช่ "IEnumerable string Collection" ฉันจะเริ่มต้นสิ่งนี้ในบรรทัดเดียวโดยใช้ IEnumerable string Collection "ได้อย่างไร

8
ทางลัดสำหรับการสร้างแผนที่จากรายการใน groovy?
ฉันต้องการบางอย่างสำหรับสิ่งนี้: Map rowToMap(row) { def rowMap = [:]; row.columns.each{ rowMap[it.name] = it.val } return rowMap; } เมื่อพิจารณาถึงสิ่งที่ GDK เป็นฉันคาดหวังว่าจะสามารถทำสิ่งต่างๆเช่น: Map rowToMap(row) { row.columns.collectMap{ [it.name,it.val] } } แต่ฉันไม่เห็นอะไรในเอกสาร ... ฉันขาดอะไรไปหรือเปล่า? หรือฉันแค่ขี้เกียจเกินไป?

4
อะไรคือความแตกต่างระหว่าง Collections.emptyList () และ Collections.EMPTY_LIST
ใน Java เรามีCollections.emptyList ()และCollections.EMPTY_LIST ทั้งสองมีคุณสมบัติเหมือนกัน: ส่งคืนรายการว่าง (ไม่เปลี่ยนรูป) รายการนี้สามารถต่ออนุกรมได้ แล้วความแตกต่างที่แน่นอนระหว่างการใช้อันอื่นคืออะไร
106 java  list  collections 


6
จำนวนองค์ประกอบในวัตถุจาวาสคริปต์
มีวิธีรับ (จากที่ใดที่หนึ่ง) จำนวนองค์ประกอบในวัตถุ javascript หรือไม่? (เช่นความซับซ้อนของเวลาคงที่) ฉันไม่พบคุณสมบัติหรือวิธีการที่ดึงข้อมูลนั้นมา จนถึงตอนนี้ฉันคิดได้แค่ว่าจะทำการวนซ้ำในคอลเลคชันทั้งหมด แต่นั่นคือเวลาเชิงเส้น เป็นเรื่องแปลกที่ไม่มีการเข้าถึงขนาดของวัตถุโดยตรงอย่างที่คุณคิด แก้ไข: ฉันกำลังพูดถึงObjectวัตถุ (ไม่ใช่วัตถุทั่วไป): var obj = new Object ;

22
การแปลงรายการ <Integer> เป็น List <String>
ฉันมีรายการจำนวนเต็มList&lt;Integer&gt;และฉันต้องการแปลงอ็อบเจ็กต์จำนวนเต็มทั้งหมดเป็น Strings ดังนั้นจึงจบด้วยList&lt;String&gt;. โดยปกติฉันสามารถสร้างรายการใหม่List&lt;String&gt;และวนซ้ำรายการที่เรียกString.valueOf()หาจำนวนเต็มแต่ละรายการได้แต่ฉันสงสัยว่ามีวิธีที่ดีกว่า (อ่าน: อัตโนมัติมากขึ้น ) หรือไม่?

10
การใช้งาน Order Set ใน Java หรือไม่
ถ้าใครมีความคุ้นเคยกับ Objective-C มีคอลเลกชันที่เรียกว่าNSOrderedSetที่ทำหน้าที่เป็นชุดและรายการที่สามารถเข้าถึงได้ในฐานะที่เป็นอาร์เรย์ของคน มีอะไรแบบนี้ใน Java ไหม? ฉันได้ยินมาว่ามีคอลเลกชันที่เรียกว่าLinkedHashMapแต่ฉันไม่พบอะไรที่เหมือนกับชุดนี้เลย
103 java  collections  set 



1
เหตุใด Collections.sort จึงใช้การจัดเรียงแบบผสานแทนที่จะเป็น Quicksort
เราทราบดีว่าการจัดเรียงแบบรวดเร็วเป็นอัลกอริทึมการเรียงลำดับที่เร็วที่สุด JDK6 collections.sortใช้อัลกอริธึมการเรียงลำดับผสานแทนการเรียงลำดับด่วน แต่ Arrays.sort ใช้อัลกอริทึมการจัดเรียงอย่างรวดเร็ว อะไรคือเหตุผลที่ Collections.sort ใช้การเรียงลำดับผสานแทนการเรียงลำดับด่วน

5
Clojure: ข้อเสีย (seq) กับ conj (รายการ)
ฉันรู้ว่าconsส่งคืน seq และconjส่งคืนคอลเล็กชัน ฉันรู้ด้วยว่าconj"เพิ่ม" รายการนั้นไว้ที่ส่วนท้ายที่เหมาะสมที่สุดของคอลเลคชันและcons"เพิ่ม" รายการไว้ด้านหน้าเสมอ ตัวอย่างนี้แสดงให้เห็นทั้งสองประเด็นเหล่านี้: user=&gt; (conj [1 2 3] 4) ; returns a collection [1 2 3 4] user=&gt; (cons 4 [1 2 3]) ; returns a seq (4 1 2 3) สำหรับเวกเตอร์แผนที่และชุดความแตกต่างเหล่านี้มีความหมายสำหรับฉัน อย่างไรก็ตามสำหรับรายการนั้นดูเหมือนจะเหมือนกัน user=&gt; (conj (list 3 2 1) 4) ; returns a list (4 3 …

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