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

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

14
มีวิธีการในตัวเพื่อเปรียบเทียบคอลเลกชัน?
ฉันต้องการเปรียบเทียบเนื้อหาของคอลเลกชันสองสามรายการในวิธีการเท่ากับของฉัน ฉันมีพจนานุกรมและ IList มีวิธีการในการทำเช่นนี้? แก้ไข: ฉันต้องการเปรียบเทียบพจนานุกรมสองเล่มกับ ILists สองคนดังนั้นฉันคิดว่าความหมายของความเท่าเทียมกันนั้นชัดเจน - หากพจนานุกรมสองเล่มมีคีย์เดียวกันที่แมปกับค่าเดียวกันนั่นก็เท่ากับ
178 c#  .net  collections 

4
ฉันจะวนลูปผ่านรายการ <T> แล้วหยิบแต่ละรายการได้อย่างไร
ฉันจะวนซ้ำรายการและคว้าแต่ละรายการได้อย่างไร ฉันต้องการให้ผลลัพธ์เป็นดังนี้: Console.WriteLine("amount is {0}, and type is {1}", myMoney.amount, myMoney.type); นี่คือรหัสของฉัน: static void Main(string[] args) { List&lt;Money&gt; myMoney = new List&lt;Money&gt; { new Money{amount = 10, type = "US"}, new Money{amount = 20, type = "US"} }; } class Money { public int amount { get; set; } public …
176 c#  for-loop  collections 

2
สร้างพจนานุกรมขึ้นใหม่จาก IEnumerable <KeyValuePair <>>
ฉันมีวิธีการที่คืนค่าIEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;แต่ผู้โทรบางรายต้องการผลลัพธ์ของวิธีการเป็นพจนานุกรม ฉันจะแปลงIEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;เป็นDictionary&lt;string, ArrayList&gt;สิ่งที่ฉันสามารถใช้ได้TryGetValueอย่างไร? วิธี: public IEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt; GetComponents() { // ... yield return new KeyValuePair&lt;string, ArrayList&gt;(t.Name, controlInformation); } โทร: Dictionary&lt;string, ArrayList&gt; actual = target.GetComponents(); actual.ContainsKey("something");

22
วิธีการนับจำนวนที่เกิดขึ้นขององค์ประกอบในรายการ
ฉันมีArrayListคลาส Collection ของ Java ดังนี้: ArrayList&lt;String&gt; animals = new ArrayList&lt;String&gt;(); animals.add("bat"); animals.add("owl"); animals.add("bat"); animals.add("bat"); อย่างที่คุณเห็นanimals ArrayListประกอบด้วย 3 batองค์ประกอบและหนึ่งowlองค์ประกอบ ฉันสงสัยว่ามี API ใดในกรอบการรวบรวมที่ส่งคืนจำนวนการbatเกิดหรือถ้ามีวิธีอื่นในการกำหนดจำนวนการเกิดขึ้น ฉันพบว่าคอลเล็กชันของ Google Multisetมี API ที่ส่งคืนจำนวนการเกิดขององค์ประกอบทั้งหมด แต่นั่นเข้ากันได้กับ JDK 1.5 เท่านั้น ปัจจุบันผลิตภัณฑ์ของเราอยู่ใน JDK 1.6 ดังนั้นฉันไม่สามารถใช้งานได้

14
วิธีรับหนึ่งรายการจาก hashmap โดยไม่ต้องวนซ้ำ
มีวิธีหรูหราในการรับเพียงหนึ่งเดียวEntry&lt;K,V&gt;จาก HashMap โดยไม่ต้องวนซ้ำถ้าไม่ทราบรหัส ลำดับการป้อนข้อมูลไม่สำคัญเราสามารถพูดได้ไหม hashMapObject.get(zeroth_index); แม้ว่าฉันจะรู้ว่าไม่มีวิธีการรับโดยดัชนีดังกล่าว ถ้าฉันพยายามวิธีการที่กล่าวถึงด้านล่างก็ยังคงต้องได้รับทุกชุดการเข้ามาของ HashMap for(Map.Entry&lt;String, String&gt; entry : MapObj.entrySet()) { return entry; } ข้อเสนอแนะยินดีต้อนรับ แก้ไข: โปรดแนะนำโครงสร้างข้อมูลอื่น ๆ ให้เพียงพอ
172 java  collections 

6
แปลงการแจงนับเป็นชุด / รายการ
มีวิธีบริดจ์ซับเดียวเพื่อดัมพ์ Enumeration ที่กำหนดให้กับ java.util.List หรือ java.util.Set หรือไม่? สิ่งที่มีอยู่ในตัวเช่นArrays.asList()หรือCollection.toArray()ควรมีอยู่ที่ใดที่หนึ่ง แต่ฉันไม่พบสิ่งนั้นในหน้าต่างตัวประเมินของ IntelliJ ตัวดีบักเกอร์ (และผลลัพธ์ของ Google / SO ด้วย)

7
คอลเลกชันที่ไม่เปลี่ยนรูปไม่ได้ vs
จากภาพรวม Collections Framework : คอลเลกชันที่ไม่สนับสนุนการดำเนินการปรับเปลี่ยน (เช่นadd, removeและclear) จะเรียกว่าunmodifiable คอลเลกชันที่ไม่ unmodifiable มีความสามารถปรับเปลี่ยนได้ คอลเลกชันที่ยังรับประกันได้ว่าการเปลี่ยนแปลงในไม่มีCollectionวัตถุที่จะมองเห็นได้จะเรียกว่าไม่เปลี่ยนรูป คอลเลกชันที่ไม่ได้เปลี่ยนรูปเป็นไม่แน่นอน ฉันไม่เข้าใจความแตกต่าง ความแตกต่างระหว่างunmodifiableและไม่เปลี่ยนรูปที่นี่คืออะไร


19
ความแตกต่างระหว่าง HashSet และ HashMap?
นอกเหนือจากความจริงที่HashSetไม่อนุญาตให้มีค่าซ้ำกันความแตกต่างระหว่างHashMapและHashSetคืออะไร ฉันหมายถึงการนำไปปฏิบัติอย่างชาญฉลาด? มันค่อนข้างคลุมเครือเพราะทั้งคู่ใช้ตารางแฮชเพื่อเก็บค่า

9
นับเทียบกับความยาวกับขนาดในคอลเลกชัน
จากการใช้ภาษาโปรแกรมและไลบรารีจำนวนมากฉันสังเกตเห็นคำศัพท์ต่าง ๆ ที่ใช้สำหรับองค์ประกอบทั้งหมดในคอลเลกชัน ที่พบมากที่สุดดูเหมือนจะเป็นlength, และcountsize เช่น. array.length vector.size() collection.count มีคำที่ต้องการใช้ไหม มันขึ้นอยู่กับประเภทของคอลเลกชันหรือไม่? กล่าวคือ ไม่แน่นอน / ไม่เปลี่ยนรูป มีการตั้งค่าสำหรับมันเป็นคุณสมบัติแทนวิธีการหรือไม่?

13
วิธีการแปลง int [] ถึง Integer [] ใน Java?
ฉันใหม่กับ Java และสับสนมาก ฉันมีชุดข้อมูลขนาดใหญ่ที่มีความยาว 4 int[]และฉันต้องการนับจำนวนครั้งที่การรวมกันโดยเฉพาะของจำนวนเต็ม 4 ตัวเกิดขึ้น ซึ่งคล้ายกับการนับความถี่คำในเอกสาร ฉันต้องการสร้างMap&lt;int[], double&gt;แผนที่ที่แต่ละ int [] ไปยังจำนวนที่กำลังทำงานอยู่เนื่องจากรายการมีการวนซ้ำ แต่ Map ไม่ได้ใช้ประเภทดั้งเดิม ดังนั้นฉันทำ Map&lt;Integer[], Double&gt; ข้อมูลของฉันถูกเก็บไว้เป็นArrayList&lt;int[]&gt;วนรอบดังนั้นฉันควรเป็นแบบนี้ ArrayList&lt;int[]&gt; data = ... // load a dataset` Map&lt;Integer[], Double&gt; frequencies = new HashMap&lt;Integer[], Double&gt;(); for(int[] q : data) { // **DO SOMETHING TO convert q from int[] to …

2
เหตุใด HashSet <Point> จึงช้ากว่า HashSet <string> มาก
ฉันต้องการจัดเก็บตำแหน่งพิกเซลบางแห่งโดยไม่อนุญาตให้ซ้ำซ้อนดังนั้นสิ่งแรกที่ควรคำนึงถึงคือHashSet&lt;Point&gt;หรือคลาสที่คล้ายกัน HashSet&lt;string&gt;อย่างไรก็ตามเรื่องนี้ดูเหมือนจะช้ามากเมื่อเทียบกับสิ่งที่ชอบ ตัวอย่างเช่นรหัสนี้: HashSet&lt;Point&gt; points = new HashSet&lt;Point&gt;(); using (Bitmap img = new Bitmap(1000, 1000)) { for (int x = 0; x &lt; img.Width; x++) { for (int y = 0; y &lt; img.Height; y++) { points.Add(new Point(x, y)); } } } ใช้เวลาประมาณ 22.5 วินาที ในขณะที่รหัสต่อไปนี้(ซึ่งไม่ใช่ตัวเลือกที่ดีสำหรับเหตุผลที่ชัดเจน)ใช้เวลาเพียง 1.6 วินาที: HashSet&lt;string&gt; points …

12
ยืนยันเท่ากับระหว่าง 2 รายการใน Junit
ฉันจะยืนยันความเท่าเทียมกันระหว่างรายการในกรณีทดสอบJUnit ได้อย่างไร ความเท่าเทียมกันควรอยู่ระหว่างเนื้อหาของรายการ ตัวอย่างเช่น: List&lt;String&gt; numbers = Arrays.asList("one", "two", "three"); List&lt;String&gt; numbers2 = Arrays.asList("one", "two", "three"); List&lt;String&gt; numbers3 = Arrays.asList("one", "two", "four"); // numbers should be equal to numbers2 //numbers should not be equal to numbers3

4
สรุป Big-O สำหรับการใช้งาน Java Collections Framework? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันอาจกำลังสอน "Java crash-course" ในไม่ช้า ในขณะที่มันอาจจะปลอดภัยที่จะสมมติว่าสมาชิกผู้ชมจะได้รู้จักสัญลักษณ์ Big-O แต่ก็อาจไม่ปลอดภัยที่จะสมมติว่าพวกเขาจะรู้ว่าลำดับของการดำเนินการต่างๆในการใช้งานคอลเลกชันต่างๆคืออะไร ฉันอาจต้องใช้เวลาในการสร้างเมทริกซ์สรุปด้วยตนเอง แต่ถ้ามันมีอยู่แล้วในโดเมนสาธารณะที่ไหนสักแห่งฉันก็อยากจะนำมันกลับมาใช้ใหม่ (ด้วยเครดิตที่เหมาะสมแน่นอน) ใครมีพอยน์เตอร์บ้าง?
164 java  collections  big-o 

9
การสร้างคิวการบล็อค <T> ใน. NET?
ฉันมีสถานการณ์ที่ฉันมีหลายเธรดที่เพิ่มเข้ากับคิวและหลายเธรดที่อ่านจากคิวเดียวกัน หากคิวมาถึงขนาดเฉพาะเธรดทั้งหมดที่เติมคิวจะถูกบล็อกในการเพิ่มจนกว่ารายการจะถูกลบออกจากคิว วิธีแก้ปัญหาด้านล่างคือสิ่งที่ฉันใช้อยู่ตอนนี้และคำถามของฉันคือ: จะปรับปรุงได้อย่างไร มีวัตถุที่เปิดใช้งานลักษณะการทำงานนี้ใน BCL ที่ฉันควรใช้อยู่หรือไม่ internal class BlockingCollection&lt;T&gt; : CollectionBase, IEnumerable { //todo: might be worth changing this into a proper QUEUE private AutoResetEvent _FullEvent = new AutoResetEvent(false); internal T this[int i] { get { return (T) List[i]; } } private int _MaxSize; internal int MaxSize { get …

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