List繼承自Collection的介面,List也是集合的一種。 List是有序佇列,List中的沒一個元素都會有一個索引,第一個元素的索引是0,往後的元素的索引值依序+1,List中允許重複的元素。
List框架:
List介面原始碼:
public interface List<E> extends Collection<E> { int size();//大小 boolean isEmpty();//判断是否为空 boolean contains(Object o);//判断是否包含某个对象 Iterator<E> iterator();//返回迭代对象 Object[] toArray(); //返回对象数组 <T> T[] toArray(T[] a);//对象数组 boolean add(E e);//添加某个对象 boolean remove(Object o);//删除某个对象 boolean containsAll(Collection<?> c); // 是否包含某个Collection的所有对象 boolean addAll(Collection<? extends E> c);//将Collection对象追加到List中 boolean addAll(int index, Collection<? extends E> c);//在某个位置将Collection对象追加到List中 boolean removeAll(Collection<?> c);//去掉Collection中所包含的对象 boolean retainAll(Collection<?> c);//去掉不包含在Collection中所包含的对象 default void replaceAll(UnaryOperator<E> operator) { Objects.requireNonNull(operator); final ListIterator<E> li = this.listIterator(); while (li.hasNext()) { li.set(operator.apply(li.next())); } } @SuppressWarnings({"unchecked", "rawtypes"}) default void sort(Comparator<? super E> c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterator<E> i = this.listIterator(); for (Object e : a) { i.next(); i.set((E) e); } } void clear();//删除所有对象 boolean equals(Object o);//判断两个list是否相同 int hashCode();//返回List的hashCode E get(int index);//返回某个位置的对象 E set(int index, E element);//替换某个位置的对象 void add(int index, E element);//在某个位置添加对象 E remove(int index);//删除某个位置的对象 int indexOf(Object o);//返回某个对象在List中的位置 int lastIndexOf(Object o);//List中最后一个对象的坐标 ListIterator<E> listIterator();//返回整个List的迭代 ListIterator<E> listIterator(int index); //从某个位置开始返回List的迭代 List<E> subList(int fromIndex, int toIndex);//截取部分List @Override default Spliterator<E> spliterator() { return Spliterators.spliterator(this, Spliterator.ORDERED); } }
以上是Java集合之List代码分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JVMmanagesgarbagecollectionacrossplatformseffectivelybyusingagenerationalapproachandadaptingtoOSandhardwaredifferences.ItemploysvariouscollectorslikeSerial,Parallel,CMS,andG1,eachsuitedfordifferentscenarios.Performancecanbetunedwithflagslike-XX:NewRa

Java代碼可以在不同操作系統上無需修改即可運行,這是因為Java的“一次編寫,到處運行”哲學,由Java虛擬機(JVM)實現。 JVM作為編譯後的Java字節碼與操作系統之間的中介,將字節碼翻譯成特定機器指令,確保程序在任何安裝了JVM的平台上都能獨立運行。

Java程序的編譯和執行通過字節碼和JVM實現平台獨立性。 1)編寫Java源碼並編譯成字節碼。 2)使用JVM在任何平台上執行字節碼,確保代碼的跨平台運行。

Java性能与硬件架构密切相关,理解这种关系可以显著提升编程能力。1)JVM通过JIT编译将Java字节码转换为机器指令,受CPU架构影响。2)内存管理和垃圾回收受RAM和内存总线速度影响。3)缓存和分支预测优化Java代码执行。4)多线程和并行处理在多核系统上提升性能。

使用原生庫會破壞Java的平台獨立性,因為這些庫需要為每個操作系統單獨編譯。 1)原生庫通過JNI與Java交互,提供Java無法直接實現的功能。 2)使用原生庫增加了項目複雜性,需要為不同平台管理庫文件。 3)雖然原生庫能提高性能,但應謹慎使用並進行跨平台測試。

JVM通過JavaNativeInterface(JNI)和Java標準庫處理操作系統API差異:1.JNI允許Java代碼調用本地代碼,直接與操作系統API交互。 2.Java標準庫提供統一API,內部映射到不同操作系統API,確保代碼跨平台運行。

modularitydoesnotdirectlyaffectJava'splatformindependence.Java'splatformindependenceismaintainedbytheJVM,butmodularityinfluencesapplicationstructureandmanagement,indirectlyimpactingplatformindependence.1)Deploymentanddistributionbecomemoreefficientwi

BytecodeinJavaistheintermediaterepresentationthatenablesplatformindependence.1)Javacodeiscompiledintobytecodestoredin.classfiles.2)TheJVMinterpretsorcompilesthisbytecodeintomachinecodeatruntime,allowingthesamebytecodetorunonanydevicewithaJVM,thusfulf


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版