赞
踩
ArrayList类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素;ArrayList 继承了 AbstractList ,并实现了 List 接口。
实例化方法:ArrayList<T> arr = new ArrayList<>(); 其中T为泛型数据类型
ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。
函数方法:
add():添加元素到ArrayList,如 arr.add("Weibo")就是在arr最后加上一个元素,叫"Weibo"。
remove():删除ArrayList中的元素,如arr.remove(3)就是删除第四个元素。
set():修改ArrayList中的元素,其中第一个参数为索引位置,第二个为要修改的值。
如arr.set(2, "Wiki")就是把第三个元素的值修改为"Wiki"。
get():参数为索引,获取对应位置的值。
LinkedList既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(stack),它的底层通过双向链表实现,双向链表的每个节点用内部类Node表示,通过first和last引用分别指向链表的第一个和最后一个元素。
废弃栈的实例化方法:Stack<T> stack = new Stack<>();
现在栈的实例化方法:Deque<T> stack = new LinkedList<Integer>();
或者直接用LinkedList<T> stack
函数方法
peek():查看堆栈顶部的对象,但不从堆栈中移除它,和pop()区分(查看且删除)。
isEmpty():判断栈是否为空。
push():把项压入堆栈顶部,对应的删除是pop()。
Queue 作为先进先出队列,只能从头部取元素、插入元素到尾部。Java 同样定义了双向队列 Deque,可以同时在头部、尾部插入和取出元素。
实例化方法: LinkedList<T> queue = new LinkedList<>();
或者 Queue<T> queue = new LinkedList<>();
函数方法
压入元素(添加):add()、offer()
相同:未超出容量,从队尾压入元素,返回压入的那个元素。
区别:在超出容量时,add()方法会对抛出异常,offer()返回false。
弹出元素(删除):remove()、poll()
相同:容量大于0的时候,删除并返回队头被删除的那个元素。
区别:在容量为0的时候,remove()会抛出异常,poll()返回false。
获取队头元素(不删除):element()、peek()
相同:容量大于0的时候,都返回队头元素。但是不删除。
区别:容量为0的时候,element()会抛出异常,peek()返回null。
addFirst()/addLast():插入元素到队列头部/尾部,失败则抛出异常。
removeFirst()/removeLast():取出并移除头部元素/尾部元素,空队列抛出异常。
peekFirst()/peekLast():取出但不移除头部元素/尾部元素,空队列返回null。
size():获取队列长度。
添加到 PriorityQueue 队列里面的元素都经过了排序处理,默认按照自然顺序,也可以通过 Comparator 接口进行自定义排序。它采用树形结构来描述元素的存储,具体说是通过完全二叉树实现一个小顶堆,在物理存储方面,PriorityQueue 底层通过数组来实现元素的存储。
由于 PriorityQueue 的底层是基于堆实现的,因此在数据量比较大时,使用 PriorityQueue 可以获得较好的时间复杂度。
优先队列默认的是最小堆(优先弹出最小值)
实例化方法:
最小堆(默认):PriorityQueue<T> queue = new PriorityQueue<>();
最大堆:PriorityQueue<T> queue = new PriorityQueue<>(int capacity, (num1, num2) -> num2-num1);
方法:peek、poll、add、isEmpty、size…(类似队列)
HashMap 是 Java 中非常常用的数据结构之一,用于存储键值对。在 HashMap 中,每个键都映射到一个唯一的值,可以通过键来快速访问对应的值,算法时间复杂度可以达到 O(1)。
实例化:HashMap<T1, T2> map = new HashMap<>();
方法:containsKey、containsValue、get、getOrDefault、isEmpty、put、remove、replace、size…
底层基于红黑树实现,是一棵平衡二叉搜索树,它的键是有序排列的
实例化:TreeMap<T1, T2> treeMap = new TreeMap<>();可以传入Comparator实现自定义排序,否则自动按键的默认方法排序
方法:firstKey、lastKey、containsKey、get、getOrDefault、isEmpty、put、remove…
TreeSet类似
String s = String.valueOf(‘c’); //效率最高的方法
String s = String.valueOf(new char[]{‘a’,‘c’}); //将一个char数组转换成String
char[] sArr = s.toCharArray();
int i=Integer.parseInt(s);
int i=Integer.valueOf(s).intValue();
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = “” + i;
被synchronize修饰的StringBuffer是线程安全的,但刷题为了效率一般都用StringBuilder
实例化:StringBuilder sb = new StringBuilder();
构建String: sb.toString
方法:append、toString、insert、delete…
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。