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

พบข้อมูลประเภทการรวบรวมอย่างง่ายในบางภาษา / แพลตฟอร์ม (เช่นใน Java หรือ. NET) รายการอาร์เรย์ใช้รายการโดยใช้อาร์เรย์ซึ่งได้รับประโยชน์จากจุดแข็งทั้ง DS


9
อาร์เรย์ความยาวตัวแปร (ไดนามิก) ใน Java
ฉันสงสัยว่าจะเริ่มต้นอาร์เรย์จำนวนเต็มอย่างไรให้ขนาดและค่าเปลี่ยนแปลงไปตลอดการทำงานของโปรแกรมของฉันมีข้อเสนอแนะหรือไม่?

16
Java: ตรวจหารายการที่ซ้ำกันใน ArrayList?
ฉันจะตรวจจับ (คืนค่าจริง / เท็จ) ได้อย่างไรว่า ArrayList มีองค์ประกอบเดียวกันมากกว่าหนึ่งใน Java หรือไม่ ขอบคุณมากเทอร์รี่ แก้ไข ลืมบอกไปว่าฉันไม่ได้ต้องการเปรียบเทียบ "บล็อก" ซึ่งกันและกัน แต่เป็นค่าจำนวนเต็ม แต่ละ "บล็อก" มี int และนี่คือสิ่งที่ทำให้พวกเขาแตกต่างกัน ฉันพบ int ของบล็อกเฉพาะโดยเรียกเมธอดชื่อ "getNum" (เช่น table1 [0] [2] .getNum ();

8
ArrayIndexOutOfBoundsException เมื่อใช้ตัววนซ้ำของ ArrayList
ตอนนี้ฉันมีโปรแกรมที่มีโค้ดที่มีลักษณะดังนี้: while (arrayList.iterator().hasNext()) { //value is equal to a String value if( arrayList.iterator().next().equals(value)) { // do something } } ฉันทำถูกต้องไหมเท่าที่ทำซ้ำผ่าน ArrayList ไป ข้อผิดพลาดที่ฉันได้รับคือ: java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(Unknown Source) at main1.endElement(main1.java:244) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown …


14
องค์ประกอบทั่วไปในสองรายการ
ฉันมีสองArrayListวัตถุที่มีจำนวนเต็มสามตัว ฉันต้องการหาวิธีคืนค่าองค์ประกอบทั่วไปของทั้งสองรายการ มีใครคิดว่าฉันจะบรรลุเป้าหมายนี้ได้อย่างไร?
101 java  arraylist  element 

10
ลบรายการออกจาก ArrayList
ฉันArrayListคิดว่าlistมันมี 8 รายการ AH และตอนนี้ฉันต้องการลบตำแหน่ง 1,3,5 รายการที่เก็บไว้ในอาร์เรย์ int จากlistวิธีที่ฉันจะทำได้ ฉันกำลังพยายามทำสิ่งนี้ด้วย ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); list.add("E"); list.add("F"); list.add("G"); list.add("H"); int i[] = {1,3,5}; for (int j = 0; j < i.length; j++) { list.remove(i[j]); } แต่หลังจากรายการแรกที่ลบตำแหน่งของอาร์เรย์จะเปลี่ยนไปและในการทำซ้ำครั้งถัดไปจะลบองค์ประกอบที่ไม่ถูกต้องหรือให้ข้อยกเว้น
100 java  arraylist 

1
เหตุใดวิธีการ removeRange () ของ AbstractList ของ Java จึงได้รับการป้องกัน
ใครมีความคิดบ้างไหมทำไมวิธี removeRange ในAbstractList (และในArrayList ) จึงเป็นprotected ? ดูเหมือนว่าการดำเนินการที่กำหนดไว้ค่อนข้างดีและมีประโยชน์ แต่ถึงกระนั้นหากต้องการใช้เราจะบังคับให้ใช้คลาสย่อยของการใช้งานรายการ มีเหตุผลบางอย่างซ่อนอยู่หรือไม่? ดูเหมือนจะอธิบายไม่ได้สำหรับฉัน


6
ใน Java 8 เหตุใดความจุเริ่มต้นของ ArrayList จึงเป็นศูนย์
อย่างที่ฉันจำได้ก่อน Java 8 ความจุเริ่มต้นArrayListคือ 10 น่าแปลกที่ความคิดเห็นเกี่ยวกับตัวสร้างเริ่มต้น (โมฆะ) ยังคงระบุว่า: Constructs an empty list with an initial capacity of ten. จากArrayList.java: /** * Shared empty array instance used for default sized empty instances. We * distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when * first element is added. */ …
94 java  arraylist  java-8 

6
แสดงรายการ <String> ถึงปัญหาการแปลง ArrayList <String>
ฉันมีวิธีการดังต่อไปนี้ ... ซึ่งใช้รายการประโยคและแยกแต่ละประโยคออกเป็นคำ นี่คือ: public List&lt;String&gt; getWords(List&lt;String&gt; strSentences){ allWords = new ArrayList&lt;String&gt;(); Iterator&lt;String&gt; itrTemp = strSentences.iterator(); while(itrTemp.hasNext()){ String strTemp = itrTemp.next(); allWords = Arrays.asList(strTemp.toLowerCase().split("\\s+")); } return allWords; } ฉันต้องส่งรายการนี้ไปยังแฮชแมปในรูปแบบต่อไปนี้ HashMap&lt;String, ArrayList&lt;String&gt;&gt; ดังนั้นวิธีนี้จะส่งกลับรายการและฉันต้องการ arrayList? ถ้าลองแคสแล้วไม่ได้ออกกำลัง ... มีคำแนะนำไหม? นอกจากนี้ถ้าฉันเปลี่ยน ArrayList เป็น List ใน HashMap ฉันจะได้รับ java.lang.UnsupportedOperationException เพราะบรรทัดนี้ในรหัสของฉัน sentenceList.add(((Element)sentenceNodeList.item(sentenceIndex)).getTextContent()); ข้อเสนอแนะที่ดีกว่านี้?
91 java  list  arraylist 

8
ฉันจะทำให้ ArrayList Thread-Safe ได้อย่างไร แนวทางอื่นในการแก้ปัญหาใน Java?
ฉันมี ArrayList ที่ฉันต้องการใช้เพื่อเก็บวัตถุ RaceCar ที่ขยายคลาสเธรดทันทีที่ดำเนินการเสร็จสิ้น คลาสที่เรียกว่า Race จะจัดการ ArrayList นี้โดยใช้วิธีการเรียกกลับที่อ็อบเจ็กต์ RaceCar เรียกใช้เมื่อดำเนินการเสร็จสิ้น วิธีการโทรกลับ addFinisher (RaceCar finisher) เพิ่มวัตถุ RaceCar ไปยัง ArrayList สิ่งนี้ควรจะให้ลำดับที่เธรดดำเนินการเสร็จสิ้น ฉันรู้ว่า ArrayList ไม่ซิงโครไนซ์ดังนั้นจึงไม่ปลอดภัยต่อเธรด ฉันลองใช้เมธอด Collections.synchronizedCollection (c Collection) โดยส่ง ArrayList ใหม่และกำหนด Collection ที่ส่งคืนไปยัง ArrayList อย่างไรก็ตามสิ่งนี้ทำให้ฉันมีข้อผิดพลาดของคอมไพเลอร์: Race.java:41: incompatible types found : java.util.Collection required: java.util.ArrayList finishingOrder = Collections.synchronizedCollection(new ArrayList(numberOfRaceCars)); นี่คือรหัสที่เกี่ยวข้อง: public class …

8
วิธีที่ดีกว่าในการค้นหาดัชนีของรายการใน ArrayList?
สำหรับแอป Android ฉันมีฟังก์ชันดังต่อไปนี้ private ArrayList&lt;String&gt; _categories; // eg ["horses","camels"[,etc]] private int getCategoryPos(String category) { for(int i = 0; i &lt; this._categories.size(); ++i) { if(this._categories.get(i) == category) return i; } return -1; } นั่นเป็นวิธีที่ "ดีที่สุด" ในการเขียนฟังก์ชันเพื่อรับตำแหน่งขององค์ประกอบหรือไม่? หรือมีฟังก์ชันเนทีฟ shmancy แฟนซีใน java ที่ฉันควรใช้?


5
java howto ArrayList push, pop, shift และ unshift
ฉันพิจารณาแล้วว่า Java ArrayList.addนั้นคล้ายกับ JavaScriptArray.push ฉันติดขัดในการค้นหาArrayListฟังก์ชันที่คล้ายกับสิ่งต่อไปนี้ Array.pop Array.shift Array.unshift ฉันเอนเอียงไป ArrayList.remove[At]
89 java  arraylist 

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