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

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

11
วิธีในการวนซ้ำรายการใน Java
ค่อนข้างใหม่กับภาษาจาวาฉันพยายามทำความคุ้นเคยกับทุกวิธี (หรืออย่างน้อยก็ไม่ใช่คนที่ไม่ใช่พยาธิวิทยา) ที่อาจทำซ้ำผ่านรายการ (หรืออาจจะเป็นชุดอื่น ๆ ) และข้อดีหรือข้อเสียของแต่ละคน รับList<E> listวัตถุฉันรู้วิธีต่อไปนี้เพื่อวนรอบองค์ประกอบทั้งหมด: พื้นฐานสำหรับการ วนซ้ำ (แน่นอนว่ามีความเท่าเทียมwhile/ do whileลูปด้วย) // Not recommended (see below)! for (int i = 0; i < list.size(); i++) { E element = list.get(i); // 1 - can call methods of element // 2 - can use 'i' to make index-based …

24
วิธีการแปลงสตริงที่คั่นด้วยเครื่องหมายจุลภาคเป็น ArrayList?
มีวิธีการในตัวใน Java ซึ่งช่วยให้เราสามารถแปลงสตริงที่คั่นด้วยเครื่องหมายจุลภาคเพื่อภาชนะบางอย่าง (เช่นอาร์เรย์รายการหรือเวกเตอร์)? หรือฉันจำเป็นต้องเขียนรหัสที่กำหนดเองสำหรับสิ่งนั้น? String commaSeparated = "item1 , item2 , item3"; ArrayList<String> items = //method that converts above string into list??

9
เหตุใดจึงไม่มี ConcurrentHashSet เทียบกับ ConcurrentHashMap
HashSet ขึ้นอยู่กับ HashMap ถ้าเราดูที่การดำเนินการทุกอย่างจะถูกจัดการภายใต้HashSet<E>HashMap<E,Object> <E> ถูกใช้เป็นกุญแจของ HashMapถูกนำมาใช้เป็นกุญแจสำคัญของ และเรารู้ว่าHashMapมันไม่ปลอดภัย นั่นคือเหตุผลที่เรามีConcurrentHashMapใน Java จากนี้ฉันกำลังสับสนว่าทำไมเราไม่ได้มี ConcurrentHashSet ซึ่งควรจะอยู่บนพื้นฐานที่ConcurrentHashMap? มีอะไรอีกบ้างที่ฉันขาดหายไป? ฉันต้องการใช้Setในสภาพแวดล้อมแบบมัลติเธรด นอกจากนี้ถ้าผมต้องการที่จะสร้างของตัวเองConcurrentHashSetผมจะประสบความสำเร็จได้โดยเพียงแค่การเปลี่ยนHashMapไปConcurrentHashMapและออกจากส่วนที่เหลือเป็นคืออะไร?

9
ฉันจะเปลี่ยนรายชื่อเป็นรายการใน Java 8 ได้อย่างไร
ถ้าฉันมีList<List<Object>>, ฉันจะเปลี่ยนสิ่งนั้นให้กลายเป็นList<Object>วัตถุที่มีวัตถุทั้งหมดในลำดับการทำซ้ำเดียวกันโดยใช้คุณสมบัติของ Java 8 ได้อย่างไร?
532 java  collections  java-8 

4
มีฟังก์ชั่นสั้น ๆ สำหรับรายการหรือไม่?
ฉันเห็นคนกำลังใช้anyรวบรวมรายการอื่นเพื่อดูว่ามีรายการอยู่ในรายการหรือไม่ แต่มีวิธีที่รวดเร็วในการทำหรือไม่: if list.contains(myItem): # do something


11
เหตุใดจึงไม่มี SortedList ใน Java
ใน Java มีSortedSetและSortedMapอินเตอร์เฟซ ทั้งคู่เป็นของเฟรมเวิร์ก Java Collectionsและจัดเตรียมวิธีการเรียงลำดับเพื่อเข้าถึงองค์ประกอบ อย่างไรก็ตามในความเข้าใจของฉันไม่มีSortedListใน Java คุณสามารถใช้java.util.Collections.sort()เพื่อเรียงลำดับรายการ ความคิดใดที่ว่าทำไมมันถูกออกแบบเช่นนั้น

7
C # ตั้งคอลเลกชัน?
ไม่มีใครรู้ว่ามีเทียบเท่ากับSetคอลเลกชันของ Java ใน C # หรือไม่? ฉันรู้ว่าคุณสามารถเลียนแบบชุดโดยใช้DictionaryหรือHashTableโดยการเติม แต่ไม่สนใจค่า แต่นั่นไม่ใช่วิธีที่สวยงามมาก
488 c#  .net  collections  set 

10
วิธีแปลง Set เป็น Array
ชุดดูเหมือนว่าเป็นวิธีที่ดีในการสร้างอาร์เรย์ที่มีองค์ประกอบที่ไม่ซ้ำกันรับประกัน แต่ก็ไม่ได้เปิดเผยวิธีที่ดีใด ๆ ที่จะได้รับคุณสมบัติยกเว้นสำหรับเครื่องกำเนิดไฟฟ้า [Set] .values mySet.values.next()ซึ่งเรียกว่าในทางที่น่าอึดอัดใจของ สิ่งนี้คงจะดีถ้าคุณสามารถโทรmapและฟังก์ชั่นที่คล้ายกันในชุด แต่คุณไม่สามารถทำเช่นนั้นได้ ฉันพยายามArray.fromแล้ว แต่ดูเหมือนว่าจะแปลงเฉพาะวัตถุที่เหมือนอาร์เรย์ (NodeList และ TypedArrays?) ไปเป็น Array ลองอีกครั้ง: ใช้Object.keysไม่ได้กับชุดและ Set.prototype ไม่มีวิธีคงที่ที่คล้ายกัน ดังนั้นคำถาม: มีวิธีการ inbuilt ที่สะดวกสำหรับการสร้าง Array ด้วยค่าของ Set ที่กำหนดหรือไม่ (ลำดับขององค์ประกอบไม่สำคัญจริงๆ) หากไม่มีตัวเลือกดังกล่าวอยู่แล้วอาจจะมีสำนวนหนึ่งที่ดีสำหรับการทำเช่นนั้น? ชอบใช้for...ofหรือคล้ายกัน?

27
Java 8 แตกต่างกันตามคุณสมบัติ
ใน Java 8 ฉันจะกรองคอลเล็กชันโดยใช้StreamAPI ได้อย่างไรโดยตรวจสอบความแตกต่างของคุณสมบัติของแต่ละวัตถุ ตัวอย่างเช่นฉันมีรายการPersonวัตถุและฉันต้องการลบคนที่มีชื่อเดียวกัน persons.stream().distinct(); จะใช้การตรวจสอบความเท่าเทียมกันเริ่มต้นสำหรับPersonวัตถุดังนั้นฉันต้องการบางสิ่งเช่น persons.stream().distinct(p -> p.getName()); น่าเสียดายที่distinct()วิธีการนี้ไม่มีการโอเวอร์โหลดดังกล่าว หากไม่มีการแก้ไขการตรวจสอบความเท่าเทียมกันในPersonชั้นเรียนเป็นไปได้ไหมที่จะทำอย่างรัดกุม?

14
การดึงรายการจาก java.util.stream.Stream ใน Java 8
ฉันกำลังเล่นกับ lambdas Java 8 เพื่อกรองคอลเลกชันได้อย่างง่ายดาย แต่ฉันไม่พบวิธีรัดกุมในการดึงผลลัพธ์เป็นรายการใหม่ภายในข้อความเดียวกัน นี่คือแนวทางที่รัดกุมที่สุดของฉัน: List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List<Long> targetLongList = new ArrayList<>(); sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add); ตัวอย่างบนอินเทอร์เน็ตไม่ได้ตอบคำถามของฉันเพราะพวกเขาหยุดโดยไม่สร้างรายการผลลัพธ์ใหม่ จะต้องมีวิธีที่กระชับกว่านี้ ฉันจะคาดหวังว่าStreamชั้นมีวิธีการเป็นtoList(), toSet()... มีวิธีที่ตัวแปรtargetLongListสามารถกำหนดโดยตรงโดยบรรทัดที่สามหรือไม่?

19
วิธีง่ายๆในการแปลง Iterable เป็น Collection
ในแอปพลิเคชันของฉันฉันใช้ห้องสมุดบุคคลที่สาม (Spring Data สำหรับ MongoDB เป็นที่แน่นอน) วิธีการของการกลับมาห้องสมุดนี้ขณะที่คาดว่าส่วนที่เหลือของรหัสของฉันIterable<T>Collection<T> มีวิธีการอรรถประโยชน์ใดที่จะให้ฉันแปลงอย่างรวดเร็วอื่น ๆ ? ฉันต้องการหลีกเลี่ยงการสร้างforeachวนลูปในรหัสของฉันสำหรับสิ่งง่าย ๆ
424 java  collections 

18
มันจะดีกว่าที่จะกลับมาเป็นคอลเลกชันที่ว่างเปล่าหรือ?
Наэтотвопросестьответына Stack Overflow нарусском : Чтолучше, возвращать null? นั่นเป็นคำถามทั่วไป (แต่ฉันใช้ C #) เป็นวิธีที่ดีที่สุด (แนวปฏิบัติที่ดีที่สุด) คุณส่งคืนคอลเลกชันที่ว่างเปล่าหรือว่างเปล่าสำหรับวิธีการที่มีคอลเลกชันเป็นประเภทที่กลับมา?
420 c#  collections 

30
รับอักขระลำดับที่ของสตริงในภาษาการเขียนโปรแกรม Swift
ฉันจะรับอักขระที่ n ของสตริงได้อย่างไร ฉันลองวงเล็บ ( []) accessor โดยไม่มีโชค var string = "Hello, world!" var firstChar = string[0] // Throws error ข้อผิดพลาด: 'subscript' ไม่พร้อมใช้งาน: ไม่สามารถใช้สตริงตัวห้อยด้วย Int ดูความคิดเห็นเอกสารประกอบสำหรับการอภิปราย

6
LINQ. VS ใด ๆ อยู่ - ความแตกต่างคืออะไร
การใช้ LINQ กับคอลเล็กชั่นอะไรคือความแตกต่างระหว่างบรรทัดโค้ดต่อไปนี้? if(!coll.Any(i => i.Value)) และ if(!coll.Exists(i => i.Value)) อัปเดต 1 เมื่อฉันถอดแยกชิ้นส่วน.Existsดูเหมือนว่าไม่มีรหัส อัปเดต 2 ใครรู้ว่าทำไมไม่มีรหัสสำหรับหนึ่งนี้
413 c#  linq  collections 

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