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

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

9
เหตุใด Java Map จึงไม่ขยายการรวบรวม
ฉันรู้สึกประหลาดใจโดยความจริงที่ว่าไม่ได้เป็นMap<?,?>Collection<?> ฉันคิดว่ามันคงสมเหตุสมผลถ้ามีการประกาศเช่นนี้: public interface Map<K,V> extends Collection<Map.Entry<K,V>> ท้ายที่สุดแล้ว a Map<K,V>คือชุดของMap.Entry<K,V>ใช่ไหม ดังนั้นมีเหตุผลที่ดีว่าทำไมจึงไม่ใช้งานเช่นนี้ ขอบคุณ Cletus สำหรับคำตอบที่เชื่อถือได้มากที่สุด แต่ฉันยังคงสงสัยว่าทำไมหากคุณสามารถดูMap<K,V>เป็นSet<Map.Entries<K,V>>(ผ่านentrySet()) มันไม่เพียงขยายส่วนต่อประสานนั้นแทน ถ้า a MapคือCollectionอะไรองค์ประกอบคืออะไร คำตอบที่สมเหตุสมผลคือ "คู่ของคีย์ - ค่า" ว่าinterface Map<K,V> extends Set<Map.Entry<K,V>>จะดี! แต่สิ่งนี้ให้สิ่งที่เป็นMapนามธรรมที่จำกัด (และไม่มีประโยชน์อย่างยิ่ง) แต่ถ้าเป็นอย่างนั้นทำไมentrySetอินเทอร์เฟซถูกระบุไว้ทำไม? มันจะต้องมีประโยชน์อย่างใด (และฉันคิดว่ามันง่ายที่จะเถียงกับตำแหน่งนั้น!) คุณไม่สามารถถามค่าคีย์แผนที่ที่กำหนดและไม่สามารถลบรายการสำหรับคีย์ที่กำหนดโดยไม่ทราบว่าคีย์แมปนั้นให้คุณค่าอะไร ฉันไม่ได้บอกว่านั่นคือทั้งหมดที่มีให้Map! สามารถและควรรักษาวิธีอื่น ๆ ทั้งหมด (ยกเว้นentrySetซึ่งซ้ำซ้อนในขณะนี้)!
146 java  oop  collections 

10
ทำไม Java Collections จึงไม่ลบเมธอดทั่วไป?
ทำไมไม่ Collection.remove (Object o)ทั่วไป? ดูเหมือนว่า Collection<E>จะมีboolean remove(E o); จากนั้นเมื่อคุณพยายามลบ (ตัวอย่าง) โดยไม่ได้ตั้งใจSet<String>แทนที่จะใช้สตริงแต่ละอันจาก a Collection<String>มันจะเป็นข้อผิดพลาดเวลาในการคอมไพล์แทนที่จะเป็นปัญหาการดีบักในภายหลัง

8
สิ่งที่. NET คอลเลกชันให้การค้นหาที่เร็วที่สุด
ฉันมีรายการ 60k ที่ต้องตรวจสอบกับรายการค้นหา 20k มีวัตถุคอลเลกชัน (เช่นList, HashTable) ที่ให้Contains()วิธีการที่รวดเร็วเป็นพิเศษหรือไม่? หรือฉันจะต้องเขียนของตัวเอง? ใน otherwords เป็นContains()วิธีการเริ่มต้นเพียงสแกนแต่ละรายการหรือใช้อัลกอริทึมการค้นหาที่ดีกว่า foreach (Record item in LargeCollection) { if (LookupCollection.Contains(item.Key)) { // Do something } } หมายเหตุ รายการค้นหาถูกเรียงลำดับแล้ว
143 c#  .net  search  collections 

9
Collections.emptyMap () เทียบกับ HashMap ใหม่ ()
มีสถานการณ์อะไรบ้างที่ฉันสามารถใช้ได้ Collections.emptyMap() ? เอกสารอธิบายว่าฉันสามารถใช้วิธีนี้ถ้าฉันต้องการให้คอลเลกชันของฉันจะไม่เปลี่ยนรูป ทำไมฉันถึงต้องการคอลเลคชันที่ไม่เปลี่ยนรูป ประเด็นคืออะไร?
143 java  collections 

9
กรองคอลเลกชันใน C #
ฉันกำลังมองหาวิธีที่รวดเร็วในการกรองคอลเล็กชันใน C # ขณะนี้ฉันใช้คอลเลกชัน List <object> ทั่วไป แต่เปิดให้ใช้โครงสร้างอื่นได้ ขณะนี้ฉันเพิ่งสร้างรายการ <object> ใหม่และวนลูปผ่านรายการเดิม หากเกณฑ์การกรองตรงกับฉันใส่สำเนาลงในรายการใหม่ มีวิธีที่ดีกว่าในการทำเช่นนี้? มีวิธีการกรองในสถานที่จึงไม่จำเป็นต้องมีรายการชั่วคราวหรือไม่?

7
การเข้าถึงรายการในคอลเลกชันสั่งทำตามดัชนี
ให้บอกว่าฉันมีรหัสต่อไปนี้: import collections d = collections.OrderedDict() d['foo'] = 'python' d['bar'] = 'spam' มีวิธีที่ฉันสามารถเข้าถึงรายการในลักษณะหมายเลขเช่น: d(0) #foo's Output d(1) #bar's Output

18
วิธีคัดลอกรายการ Java Collections
ฉันมีArrayListและฉันต้องการที่จะคัดลอกมันอย่างแน่นอน ฉันใช้คลาสยูทิลิตี้เมื่อเป็นไปได้บนสมมติฐานที่ว่ามีคนใช้เวลาทำให้ถูกต้อง ตามธรรมชาติแล้วฉันก็จบลงด้วยCollectionsคลาสที่มีวิธีการคัดลอก สมมติว่าฉันมีต่อไปนี้: List<String> a = new ArrayList<String>(); a.add("a"); a.add("b"); a.add("c"); List<String> b = new ArrayList<String>(a.size()); Collections.copy(b,a); นี้ล้มเหลวเนื่องจากโดยทั่วไปจะคิดว่าไม่ใหญ่พอที่จะถือb aใช่ฉันรู้ว่าbมีขนาด 0 แต่มันควรจะใหญ่พอตอนนี้ไม่ควรหรือไม่ ถ้าฉันต้องกรอกbก่อนจากนั้นก็Collections.copy()จะกลายเป็นฟังก์ชั่นที่ไร้ประโยชน์อย่างสมบูรณ์ในใจของฉัน ดังนั้นยกเว้นการเขียนโปรแกรมฟังก์ชั่นการคัดลอก (ซึ่งฉันจะทำตอนนี้) มีวิธีที่เหมาะสมในการทำเช่นนี้หรือไม่?
141 java  list  collections  copy 

5
มีวิธีที่หรูหรากว่าในการเพิ่มรายการลงในพจนานุกรม <> อย่างปลอดภัยหรือไม่?
ฉันต้องเพิ่มคู่คีย์ / วัตถุลงในพจนานุกรม แต่แน่นอนฉันต้องตรวจสอบก่อนว่ามีกุญแจอยู่แล้วหรือไม่ฉันได้รับข้อผิดพลาด" คีย์มีอยู่แล้วในพจนานุกรม " รหัสด้านล่างแก้ปัญหานี้ แต่ clunky เป็นวิธีที่สง่างามมากขึ้นในการทำสิ่งนี้โดยไม่ต้องทำวิธีการช่วยเหลือสตริงเช่นนี้? using System; using System.Collections.Generic; namespace TestDictStringObject { class Program { static void Main(string[] args) { Dictionary&lt;string, object&gt; currentViews = new Dictionary&lt;string, object&gt;(); StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view1"); StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view2"); StringHelpers.SafeDictionaryAdd(currentViews, "Employees", "view1"); StringHelpers.SafeDictionaryAdd(currentViews, "Reports", "view1"); foreach (KeyValuePair&lt;string, object&gt; pair in currentViews) …

16
มียูทิลิตี Java ทั่วไปเพื่อแบ่งรายการเป็นแบตช์หรือไม่?
ฉันเขียนโปรแกรมอรรถประโยชน์เพื่อแบ่งรายการเป็นชุดขนาดที่กำหนด ฉันแค่อยากจะรู้ว่ามี apache ทั่วไปที่ใช้สำหรับการนี้ public static &lt;T&gt; List&lt;List&lt;T&gt;&gt; getBatches(List&lt;T&gt; collection,int batchSize){ int i = 0; List&lt;List&lt;T&gt;&gt; batches = new ArrayList&lt;List&lt;T&gt;&gt;(); while(i&lt;collection.size()){ int nextInc = Math.min(collection.size()-i,batchSize); List&lt;T&gt; batch = collection.subList(i,i+nextInc); batches.add(batch); i = i + nextInc; } return batches; } โปรดแจ้งให้เราทราบหากมียูทิลิตี้ที่มีอยู่แล้วสำหรับสิ่งเดียวกัน
141 java  collections 

11
มีคอลเลกชันที่พิมพ์อย่างมากใน Objective-C หรือไม่
ฉันยังใหม่กับการเขียนโปรแกรม Mac / iPhone และ Objective-C ใน C # และ Java เรามี "generics" คลาสการรวบรวมที่สมาชิกสามารถเป็นประเภทที่ประกาศเท่านั้น ตัวอย่างเช่นใน C # Dictionary&lt;int, MyCustomObject&gt; สามารถมีคีย์ที่เป็นจำนวนเต็มและค่าที่เป็นประเภท MyCustomObject เท่านั้น มีกลไกที่คล้ายกันอยู่ใน Objective-C หรือไม่?

4
Java 8: ประสิทธิภาพของ Streams vs Collections
ฉันยังใหม่กับ Java 8 ฉันยังไม่รู้ API ในเชิงลึก แต่ฉันได้ทำเกณฑ์มาตรฐานอย่างไม่เป็นทางการเพื่อเปรียบเทียบประสิทธิภาพของ Streams API ใหม่กับคอลเลกชันเก่าที่ดี การทดสอบประกอบด้วยในการกรองรายการIntegerและจำนวนคู่แต่ละคำนวณรากและเก็บไว้ในผลของListDouble นี่คือรหัส: public static void main(String[] args) { //Calculating square root of even numbers from 1 to N int min = 1; int max = 1000000; List&lt;Integer&gt; sourceList = new ArrayList&lt;&gt;(); for (int i = min; i &lt; max; i++) …

3
Arrays.asList () เทียบกับ Collections.singletonList ()
มีข้อได้เปรียบ (หรือแตกต่างกันมาก) ในการใช้ Arrays.asList (บางอย่าง) เหนือ Collections.singletonList (บางสิ่ง) เพื่อสร้างรายการที่มีหนึ่งรายการหรือไม่? หลังทำให้รายการที่ส่งคืนไม่เปลี่ยนรูปเช่นกัน
140 java  collections 

13
วิธีคัดลอก java.util.List ไปยัง java.util.List อื่น
ฉันมีข้อมูลList&lt;SomeBean&gt;ที่สร้างขึ้นจากบริการบนเว็บ ฉันต้องการคัดลอก / โคลนเนื้อหาของรายการนั้นลงในรายการว่างประเภทเดียวกัน การค้นหาโดย Google สำหรับการคัดลอกรายการแนะนำให้ฉันใช้Collections.copy()วิธีการ ในตัวอย่างทั้งหมดที่ฉันเห็นรายการปลายทางควรมีจำนวนรายการที่แน่นอนเพื่อให้การคัดลอกเกิดขึ้น เนื่องจากรายการที่ฉันใช้มีการเติมข้อมูลผ่านบริการเว็บและมีวัตถุหลายร้อยรายการฉันจึงไม่สามารถใช้เทคนิคข้างต้นได้ หรือผมใช้ผิด ?? !! อย่างไรก็ตามเพื่อให้ได้ผลฉันพยายามทำอะไรแบบนี้ แต่ฉันก็ยังได้IndexOutOfBoundsExceptionไฟล์. List&lt;SomeBean&gt; wsList = app.allInOne(template); List&lt;SomeBean&gt; wsListCopy=new ArrayList&lt;SomeBean&gt;(wsList.size()); Collections.copy(wsListCopy,wsList); System.out.println(wsListCopy.size()); ฉันพยายามใช้wsListCopy=wsList.subList(0, wsList.size())แต่ฉันได้รับConcurrentAccessExceptionรหัสในภายหลัง ตีและทดลองใช้ :) อย่างไรก็ตามคำถามของฉันง่ายมากฉันจะคัดลอกเนื้อหาทั้งหมดในรายการของฉันไปยังรายการอื่นได้อย่างไร ไม่ผ่านการย้ำแน่นอน
140 java  collections  copy 

17
แปลงอาร์เรย์ของ longs ดั้งเดิมเป็น List of Longs
นี่อาจเป็นคำถามง่าย ๆ นิดนึง แต่ความพยายามครั้งแรกของฉันก็ไม่ได้ผลอย่างสมบูรณ์ ฉันอยากจะลองชุดแบบดั้งเดิมและเปลี่ยนเป็นรายการซึ่งฉันพยายามทำเช่นนี้: long[] input = someAPI.getSomeLongs(); List&lt;Long&gt; inputAsList = Arrays.asList(input); //Total failure to even compile! วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?

12
ไลบรารี Java Collections ที่มีประสิทธิภาพที่สุดคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม &amp; คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ไลบรารี Java Collections ที่มีประสิทธิภาพที่สุดคืออะไร ไม่กี่ปีที่ผ่านมาผมไม่มากของ Java และมีความประทับใจกลับมาแล้วว่าขุมที่ดีที่สุด (ที่มีประสิทธิภาพมากที่สุด) การใช้ Java คอลเลกชัน แต่เมื่อผมได้อ่านคำตอบของคำถามที่ว่า " มีประโยชน์ห้องสมุดฟรี Java มากที่สุด? " ผมสังเกตเห็นว่าขุมถูกกล่าวถึงแทบจะไม่ ดังนั้นไลบรารี Java Collections ใดที่ดีที่สุดในตอนนี้ UPDATE:เพื่อชี้แจงฉันต้องการทราบว่าส่วนใหญ่ของไลบรารีที่จะใช้เมื่อฉันต้องเก็บรายการนับล้านไว้ในตารางแฮช ฯลฯ (ต้องการรันไทม์และหน่วยความจำขนาดเล็ก)
135 java  collections 

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