小总结

原创 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;

}

solr6+ik相关知识总结

  • 2017年12月13日 15:34
  • 84KB
  • 下载

Vue 核心技术总结

  • 2017年12月12日 16:57
  • 3.02MB
  • 下载

机器学习复习——各类算法优缺点总结

算法 优点 缺点 决策树(Decision Trees) 1.   易于理解和解释; 2.   数据的准备简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空...

年终总结ppt模板

  • 2017年12月12日 11:28
  • 6.27MB
  • 下载

CoordinatorLayout使用总结

  • 2017年12月12日 11:42
  • 16KB
  • 下载

感受-App接口开发课程讲解和总结

1.背景       今天有幸给学弟学妹们上了一节课,课程内容—— app接口开发。算起来在学校玩程序和软件已经有一年的时间了,这一年里学习到了很多东西,从接触编程语言到会做 安卓软件 ,再到 会写网...

基于OPENCV的多种特征提取总结

  • 2017年12月08日 01:06
  • 2.49MB
  • 下载

Linux指令-王桂林老师总结的书籍

  • 2017年12月11日 10:08
  • 1.27MB
  • 下载

图表插件 - chart.js (柱状图) 学习总结

图表插件 - chart.js (柱状图) 学习总结 个人网站:http://lishangrong.github.io/2016/01/28/20160128-chartjs(bar)/...
  • lishangr
  • lishangr
  • 2016年01月28日 20:58
  • 18033

计算机网络复习总结

  • 2017年12月09日 15:51
  • 2.22MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:小总结
举报原因:
原因补充:

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