`
bmqnc
  • 浏览: 122713 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

LinkedList中addAll(int index, Collection<? extends E> c)函数分析

    博客分类:
  • java
阅读更多
 public boolean addAll(int index, Collection<? extends E> c) {
        if (index < 0 || index > size)
            throw new IndexOutOfBoundsException("Index: "+index+
                                                ", Size: "+size);
        Object[] a = c.toArray();
        int numNew = a.length;
        if (numNew==0)
            return false;
	modCount++;

        Entry<E> successor = (index==size ? header : entry(index));
        Entry<E> predecessor = successor.previous;
	for (int i=0; i<numNew; i++) {
            Entry<E> e = new Entry<E>((E)a[i], successor, predecessor);
            predecessor.next = e;
            predecessor = e;
        }
        successor.previous = predecessor;

        size += numNew;
        return true;
    }


这个函数也很无敌,关键是collection插入的时候保持了有序,主要是那个for循环体里面,后继的元素都在之前被插入的元素之后插入,所以能保持有序。
分享到:
评论

相关推荐

    TreeMap<K,V>类以及LinkedList<E>

    7_4.有集合A={1,2,3,4}和B={1,3,7,9,11},编写一个应用程序输出A和B交集、并集和差集...编写一个应用程序,要求将LinkedList&lt;E&gt;创建的对象写入到文件,然后读出一个LinkedList&lt;E&gt;对象,并遍历LinkedList&lt;E&gt;节点中的数据

    ocjp题库 1z0-851

    Replace the method declaration with "sum(List&lt;int&gt; intList)". F. Replace the method declaration with "sum(List&lt;Integer&gt; intList)". Answer: ACF Section: (none) Explanation/Reference: Explanation: ...

    Visual C++ 编程资源大全(英文源码 DLL)

    1,01.zip&lt;br&gt;Dialogs in DLL&lt;br&gt;在DLL中实现对话框(5KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;Export dialogs in MFC Extension DLLs&lt;br&gt;在MFC扩充DLL中输出对话框(12KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;Remapping resource script ID's&lt;br&gt;...

    约瑟夫出圈代码,轻松解决 使用LinkedList<Integer>

    LinkedList&lt;Integer&gt; ab=new LinkedList(); for(int i=0;i&lt;N;i++) ab.add(i+1); for(;;){ if(ab.size()==0)break;//结束条件 int i=1; while(i!=M){ ab.add(ab.remove());//如果没有报到M这个数字的人将其从...

    JDK 1.5的泛型實現(Generics in JDK 1.5)

    template&lt;&gt;,藉此告訴編譯器哪些符號是 型別參數( type parameters),如圖 8。 template &lt;typename T&gt; class Rect : public Shape 侯捷觀點 JDK 1.5的泛型實現(Generics in JDK 1.5)7 { ...

    Java JDK实例宝典

    &lt;br&gt;第1章 Java基础 &lt;br&gt;1.1 转换基本数据类型 &lt;br&gt;1.2 Java的运算符 &lt;br&gt;1.3 控制程序的流程 &lt;br&gt;1.4 计算阶乘 &lt;br&gt;1.5 实现命令行程序 &lt;br&gt;第2章 Java面向对象程序设计 &lt;br&gt;2. 1 复数类 &lt;br&gt;2. 2 equals.chashCode...

    访问链表的第index数据

    truct Node{ int data; Node*next; }; struct LinkedList{ Node*head;... if(index&lt;0||index&gt;=list.size)throw index; Node*p=list.head; for(int i=0;i&lt;index;i++){p=p-&gt;next;} return p-&gt;data; }

    AIC的Java课程1-6章

    人民邮电出版社&lt;br&gt; “Java 编程思想” 第3版 机械工业出版社&lt;br&gt; 教学内容和要求&lt;br&gt;知识点 重要程度 使用频度 难度&lt;br&gt;Java 入门 高 中 易&lt;br&gt;变量和运算符 高 高 中&lt;br&gt;控制结构 高 高 易&lt;br&gt;数组 高 高 中...

    android listview 上下滑动刷新

    private LinkedList&lt;HashMap&lt;String, String&gt;&gt; mListItems; private NewsAdapter adapter; private int lastItem; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate...

    链表啊,数组 啊,哈希表啊

    &lt;br&gt;&lt;br&gt;/*************** 这些头文件不必包含 ***************/&lt;br&gt;node.h: 普通链表结点&lt;br&gt;dnode.h: 双向循环链表结点&lt;br&gt;treenode.h: 二叉树结点&lt;br&gt;avltreenode.h: AVL 树结点&lt;br&gt;/***********************...

    java语言中使用的类总结

    系统总结了 1.Date类 2.Calendar类 ...4.LinkedList&lt;E&gt;泛型类 5.HashSet&lt;E&gt;泛型类 6.HashMap&lt;K,V&gt;泛型类 7.TreeSet&lt;E&gt;泛型类 8.TreeMap&lt;K,V&gt;泛型类 9.Stack&lt;E&gt;泛型类 等方面的含义用法和范例。。。

    2013-01-30 泛型、反射.pdf

    为什么要有泛型集合(List&lt;T&gt;,Dictionary&lt;K,V&gt;,LinkedList&lt;T&gt;)? 1.为了避免装箱拆箱; 2.复用集合类里的 代码(算法) List&lt;string&gt; List&lt;int&gt; 1.概念 1.1官方:是一种特殊的【算法重用】机制。允许程序员在代码...

    阿里P7面试题包含解答

    Vector,ArrayList, LinkedList的区别是什么?... HashTable不允许&lt;键,值&gt;有空值,HashMap允许&lt;键,值&gt;有空值。 3. HashTable使用Enumeration,HashMap使用Iterator。 4. HashTable中hash数组的默认大小是1

    .Net可视化调试工具

    6:泛型系列:Dictionary&lt;,&gt;、LinkedList&lt;&gt;、List&lt;&gt;、Queue&lt;&gt;、SortedDictionary&lt;,&gt;、SortedList&lt;,&gt;、Stack&lt;&gt; 7:非泛型系列:ArrayList、Hashtable、Queue、SortedList、Stack 8:其它继承自:Enumerable 接口的...

    C++链表类 模板类

    Node&lt;T&gt; *LinkedList&lt;T&gt;::GetNode(const T& item, Node&lt;T&gt;* ptrNext) //生成新结点 { Node&lt;T&gt; *p; p = new Node&lt;T&gt;(item,ptrNext); if (p == NULL) { cout &lt;&lt; "Memory allocation failure!\n"; exit(1); } ...

    操作系统作业,生产者消费者,包含源代码

    LinkedList&lt;JButton&gt; blockProducerList=new LinkedList&lt;JButton&gt;(); LinkedList&lt;JButton&gt; blockCacheList=new LinkedList&lt;JButton&gt;(); LinkedList&lt;JButton&gt; blockConsumerList=new LinkedList&lt;JButton&gt;(); ...

    LinkedList的用法

    LinkedList&lt;String&gt; list = new LinkedList&lt;String&gt;(); list.add("aaa"); list.add("bbb"); list.add("ccc"); /* * public void addFirst(E e)方法 * 将指定元素插入此列表的开头 */ list....

    数据结构习题1.pdf

    输入示例 输出示例 3 1 2 3 1 4 2 1 1 2 4 #include&lt;stdio.h&gt; #include&lt;malloc.h&gt; typedef struct LinkedList* List; struct LinkedList { List right; List left; int n; }; List creatList(int peopleNum) { Li

    java代码-LinkedListDome.java:8: error: cannot find symbol

    java代码-LinkedListDome.java:8: error: cannot find symbol

Global site tag (gtag.js) - Google Analytics