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

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

9
ArrayList.clear () และ ArrayList.removeAll () แตกต่างกันอย่างไร?
สมมติว่าarraylistมีการกำหนดเป็นArrayList<String> arraylistเป็นarraylist.removeAll(arraylist)เทียบเท่ากับarraylist.clear()? ถ้าเป็นเช่นนั้นฉันสามารถสันนิษฐานได้ว่าclear()วิธีนี้มีประสิทธิภาพมากกว่าสำหรับการล้างรายการอาร์เรย์หรือไม่ มีข้อควรระวังในการใช้งานarraylist.removeAll(arraylist)แทนarraylist.clear()ไหม?
283 java  arraylist 

9
วิธีการสุ่ม ArrayLists สองแบบในแบบเดียวกันได้อย่างไร
ฉันมี arraylist สองรายการfilelistและimgListเกี่ยวข้องกันเช่น "H1.txt" ที่เกี่ยวข้องกับ "e1.jpg" วิธีการสุ่มรายการโดยอัตโนมัติimgListตามการสุ่มของfileList? เช่นเดียวกับใน excel ถ้าเราจัดเรียงคอลัมน์บางคอลัมน์คอลัมน์อื่นจะตามมาโดยอัตโนมัติ String [] file = {"H1.txt","H2.txt","H3.txt","M4.txt","M5.txt","M6.txt"}; ArrayList<String> fileList = new ArrayList<String>(Arrays.asList(file)); String [] img = {"e1.jpg","e2.jpg","e3.jpg","e4.jpg","e5.jpg","e6.jpg"}; ArrayList<String> imgList = new ArrayList<String>(Arrays.asList(img)); //randomized files Collections.shuffle(fileList); ผลลัพธ์หลังจากการสุ่มเช่น: fileList = {"M4.txt","M6.txt","H3.txt","M5.txt","H2.txt","H1.txt"}; เอาท์พุทตั้งใจ: imgList = {"e4.jpg","e6.jpg","e3.jpg","e5.jpg","e2.jpg","e1.jpg"};

15
ขนาดเริ่มต้นสำหรับ ArrayList
คุณสามารถกำหนดขนาดเริ่มต้นสำหรับ ArrayList ได้โดยทำ ArrayList<Integer> arr=new ArrayList<Integer>(10); อย่างไรก็ตามคุณไม่สามารถทำได้ arr.add(5, 10); เพราะมันทำให้เกิดข้อยกเว้นนอกขอบเขต การตั้งค่าขนาดเริ่มต้นคืออะไรหากคุณไม่สามารถเข้าถึงพื้นที่ที่คุณจัดสรรได้? ฟังก์ชั่นการเพิ่มนั้นถูกกำหนดไว้add(int index, Object element)ดังนั้นฉันจึงไม่ได้เพิ่มเข้าไปในดัชนี 10

4
ความแตกต่างระหว่าง if (a - b <0) และ if (a <b)
ฉันอ่านArrayListซอร์สโค้ดของ Java และสังเกตเห็นการเปรียบเทียบบางอย่างในคำสั่ง if ใน Java 7 วิธีgrow(int)ใช้ if (newCapacity - minCapacity &lt; 0) newCapacity = minCapacity; ใน Java 6 growไม่มีอยู่จริง ensureCapacity(int)อย่างไรก็ตามวิธีการใช้ if (newCapacity &lt; minCapacity) newCapacity = minCapacity; อะไรคือเหตุผลที่อยู่เบื้องหลังการเปลี่ยนแปลง? มันเป็นปัญหาด้านประสิทธิภาพหรือเป็นสไตล์หรือไม่? ฉันสามารถจินตนาการได้ว่าการเปรียบเทียบกับศูนย์นั้นเร็วกว่า แต่ทำการลบอย่างสมบูรณ์เพื่อตรวจสอบว่ามันเป็นลบหรือเปล่า นอกจากนี้ในแง่ของ bytecode นี้จะเกี่ยวข้องกับสองคำสั่ง ( ISUBและIF_ICMPGE) แทนหนึ่ง ( IFGE)

12
แปลง Iterator เป็น ArrayList
รับIterator&lt;Element&gt;แล้วเราจะแปลงIteratorให้เป็นArrayList&lt;Element&gt;(หรือList&lt;Element&gt; ) ในที่ดีที่สุดและเร็วที่สุดในทางที่เป็นไปเพื่อให้เราสามารถใช้ArrayList'การดำเนินงานเกี่ยวกับมันเช่นget(index), add(element)ฯลฯ
241 java  list  arraylist  iterator 

7
Java List.add () UnsupportedOperationException
ฉันพยายามที่จะเพิ่มวัตถุกับList&lt;String&gt;อินสแตนซ์ UnsupportedOperationExceptionแต่มันพ่น ไม่มีใครรู้ว่าทำไม รหัส Java ของฉัน: String[] membersArray = request.getParameterValues('members'); List&lt;String&gt; membersList = Arrays.asList(membersArray); for (String member : membersList) { Person person = Dao.findByName(member); List&lt;String&gt; seeAlso; seeAlso = person.getSeeAlso(); if (!seeAlso.contains(groupDn)){ seeAlso.add(groupDn); person.setSeeAlso(seeAlso); } } ข้อความแสดงข้อผิดพลาด: java.lang.UnsupportedOperationException java.util.AbstractList.add (ไม่ทราบแหล่งที่มา) java.util.AbstractList.add (ไม่ทราบแหล่งที่มา) javax.servlet.http.HttpServlet.service (HttpServlet.java:641) javax.servlet.http.HttpServlet.service (HttpServlet.java:722)

7
สำเนา Java ArrayList
ฉันมีArrayList l1ขนาด 10 ฉันกำหนดประเภทอ้างอิงรายการใหม่l1 l2จะl1และl2ชี้ไปที่ArrayListวัตถุเดียวกันหรือไม่ หรือเป็นสำเนาของArrayListวัตถุที่กำหนดให้l2? เมื่อใช้การl2อ้างอิงถ้าฉันอัปเดตวัตถุรายการมันสะท้อนถึงการเปลี่ยนแปลงในl1ประเภทการอ้างอิงด้วย ตัวอย่างเช่น: List&lt;Integer&gt; l1 = new ArrayList&lt;Integer&gt;(); for (int i = 1; i &lt;= 10; i++) { l1.add(i); } List l2 = l1; l2.clear(); ไม่มีวิธีอื่นในการกำหนดสำเนาของวัตถุรายการให้กับตัวแปรอ้างอิงใหม่นอกเหนือจากการสร้างวัตถุ 2 รายการและทำสำเนาบนคอลเล็กชันจากเก่าไปใหม่หรือไม่
214 java  arraylist 

5
Java ArrayList แทนที่ที่ดัชนีเฉพาะ
ฉันต้องการความช่วยเหลือเกี่ยวกับจาวานี้ ฉันสร้าง ArrayList ของหลอดไฟและฉันพยายามเปลี่ยนหลอดไฟที่ดัชนีเฉพาะด้วยหลอดไฟอื่น ดังนั้นด้วยหัวข้อต่อไปนี้ฉันจะดำเนินการอย่างไร public void replaceBulb(int index, Bulbs theBulb) { }
212 java  arraylist 

20
วิธีหลีกเลี่ยง java.util.ConcurrentModificationException เมื่อวนซ้ำผ่านและลบองค์ประกอบออกจาก ArrayList
ฉันมี ArrayList ที่ฉันต้องการวนซ้ำ ในขณะที่วนซ้ำฉันต้องลบองค์ประกอบในเวลาเดียวกัน java.util.ConcurrentModificationExceptionเห็นได้ชัดว่านี้พ่น แนวปฏิบัติที่ดีที่สุดในการจัดการปัญหานี้คืออะไร ฉันควรโคลนรายการก่อนหรือไม่ ฉันลบองค์ประกอบที่ไม่ได้อยู่ในลูป แต่เป็นอีกส่วนหนึ่งของรหัส รหัสของฉันมีลักษณะเช่นนี้: public class Test() { private ArrayList&lt;A&gt; abc = new ArrayList&lt;A&gt;(); public void doStuff() { for (A a : abc) a.doSomething(); } public void removeA(A a) { abc.remove(a); } } a.doSomethingอาจเรียกTest.removeA();
203 java  arraylist  foreach 




18
วิธีการลบองค์ประกอบ null ทั้งหมดออกจาก ArrayList หรือ String Array
ฉันลองวนซ้ำแบบนั้น // ArrayList tourists for (Tourist t : tourists) { if (t != null) { t.setId(idForm); } } แต่มันก็ไม่ดี ใครช่วยแนะนำฉันได้ดีกว่า เกณฑ์มาตรฐานที่มีประโยชน์เพื่อการตัดสินใจที่ดีกว่า: ในขณะที่ลูปสำหรับการทดสอบลูปและ Iterator

13
Java ArrayList วิธีการเพิ่มองค์ประกอบที่จุดเริ่มต้น
ฉันต้องการเพิ่มองค์ประกอบลงในArrayListคิว แต่เมื่อฉันเรียกใช้ฟังก์ชันเพื่อเพิ่มองค์ประกอบฉันต้องการให้เพิ่มองค์ประกอบที่จุดเริ่มต้นของอาร์เรย์ (ดังนั้นจึงมีดัชนีต่ำสุด) และถ้าอาร์เรย์มีองค์ประกอบเพิ่ม 10 รายการ ผลลัพธ์ใหม่ในการลบองค์ประกอบที่เก่าที่สุด (อันที่มีดัชนีสูงสุด) ไม่มีใครมีข้อเสนอแนะใด ๆ ?
183 java  arrays  arraylist  stack 

7
ตรวจสอบว่ามีค่าอยู่ใน ArrayList
ฉันจะตรวจสอบว่ามีค่าที่เขียนในสแกนเนอร์อยู่ในArrayList? List&lt;CurrentAccount&gt; lista = new ArrayList&lt;CurrentAccount&gt;(); CurrentAccount conta1 = new CurrentAccount("Alberto Carlos", 1052); CurrentAccount conta2 = new CurrentAccount("Pedro Fonseca", 30); CurrentAccount conta3 = new CurrentAccount("Ricardo Vitor", 1534); CurrentAccount conta4 = new CurrentAccount("João Lopes", 3135); lista.add(conta1); lista.add(conta2); lista.add(conta3); lista.add(conta4); Collections.sort(lista); System.out.printf("Bank Accounts:" + "%n"); Iterator&lt;CurrentAccount&gt; itr = lista.iterator(); while (itr.hasNext()) { …
179 java  arraylist  contains 

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