小总结

原创 2015年11月19日 15:31:15

最近java发现自己有很多有关list的基础的函数都忘记了,赶快来总结一下!以便加强记忆!!!

1. ArrayList相关用法

ArrayList就是动态数组,实现了大小可变的数组。
① boolen add(E e)
将制定元素添加到此列表的尾部
②void add(int index, E element)
将制定元素插入此列表的指定位置
③void clear()
移出次列表中的所有元素
④Object clone()
返回次ArrayList实例的浅表副本。
⑤boolean contains(Object o)
如果此列表中包含制定元素,则返回true.
⑥ E get(int index)
返回此列表指定位置上的元素
⑦ int indexOf(Object o)
返回次列表中首次出现指定元素的索引,如果此列表不包含元素,则返回-1;
⑧boolean isEmpty()
如果此列表中没有元素,则返回 true
⑨E remove(int index)
移除此列表中指定位置上的元素
10. boolean remove(Object o)
移除此列表中首次出现的指定元素(如果存在)。
11. protected void removeRange(int fromIndex, int toIndex)
移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
12. E set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。
13. int size()
返回此列表中的元素数。

注意: ArrayList的下标是从0开始。

2. LinkedList相关用法

LinkedList是双向链表,链表的每个节点都包含了对前一个和后一个元素的饮用。

  1. public LinkedList()
    生成空的链表
  2. getFirst() 获取链表的第一个元素getLast()获取链表的最好一个元素
  3. subList(index1,index2) 从链表生成子表
  4. add(Object E) 将元素添加到链表的最后
  5. add(int index, Object element)添加元素到指定索引位置
  6. addFirst(E),addLats(E)把链表当做栈或者队列使用。
  7. remove(),removeLast(),removeFirst() 删除元素
  8. clear()清空LinkedList
  9. peek()返回队列首部元素
  10. poll() 取出队首元素

例子

**问题: **Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]

利用ArrayList实现

 /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public List<List<Integer>> levelOrderBottom(TreeNode root) {
            List<List<Integer>> result = new ArrayList<List<Integer>>();
            addlevel(root, 0, result);
            for(int i = 0, j = result.size() - 1; i < j; i++) {
            result.add(i, result.remove(j));}
            return result;

        }
        public static List<List<Integer>> addlevel(TreeNode root, int level, List<List<Integer>> result){
            if (root == null) return result;
            if (result.size() == level){
                result.add(new ArrayList<Integer>());
            }
            result.get(level).add(root.val);
            addlevel(root.left, level+1, result);
            addlevel(root.right, level+1, result);
            return result;
        }

    }

利用LinkedList:

public List<List<Integer>> levelOrderBottom(TreeNode root) {
    List<List<Integer>> result = new ArrayList<List<Integer>>();
    if(root==null) return result;
    Queue<TreeNode> q = new LinkedList<>();
    q.add(root);
    while(q.size()>0){
        List<Integer> list = new ArrayList<>();
        int size = q.size();
        for(int i=0; i<size; i++){
            TreeNode node = q.poll();
            list.add(node.val);
            if(node.left!=null) q.add(node.left);
            if(node.right!=null) q.add(node.right);
        }
        result.add(0,list);
    }
    return result;

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

STM32的IAP总结

  • 2017-03-06 10:33
  • 143KB
  • 下载

Web测试总结

  • 2017-07-02 10:38
  • 1.11MB
  • 下载

关于双目立体视觉的一些总结

从创业到再就业,浅述对程序员职业生涯的看法 &nbsp;&nbsp;&nbsp;&nbsp; 征文 | 你会为 AI 转型么? &nbsp;&nbsp;&nbsp;&nbsp; ...

2017软件工程初级实训总结

  • 2017-06-29 18:17
  • 26.58MB
  • 下载

微信小程序开发实践经验总结(1)

一、开发小程序你得小心这些坑 切记:目前打包后的文件不能超过2M,否则不能上传到微信服务器。 小程序不支持sass语法,不支持window、document,不能使用相关的库,如jquery、Pr...

蓝桥杯总结

  • 2017-05-29 14:32
  • 445KB
  • 下载

ActiveMQ JDBC集群总结

  • 2016-11-23 18:09
  • 99KB
  • 下载

Git分支总结

1 分支创建 比如创建一个dev分支,可以使用个git status命令: $ git branch testing 用git branch命令查看当前分支: $ git branch *...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)