关闭

小总结

标签: javaarraylist函数
129人阅读 评论(0) 收藏 举报
分类:

最近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;

}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4392次
    • 积分:188
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:2篇
    • 评论:2条
    最新评论