49. ArrayList LinkedList中特有的方法
集合的体系:
--------------| Collection 单列集合的根接口
----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复
------|ArrayList ArrayList底层维护了一个Object数组实现的,特点是:查询快,增删慢
使用场景:如果目前的数据查询比较多,删除比较少的时候,那么就使用ArrayList存储这批数据,比如:高校的读书馆
注意:使用ArrayList无参构造函数时,Object初始的长度是10,长度不够时自动增长0.5倍
------|LinkedList LinkedList底层使用了链表数据结构实现的。特点是:查询速度慢,增删快
使用场景:如果目前的数据增删比较多,查询比较少的时候,那么就使用LinkedList存储这批数据
----------| Set 如果实现了Set几口的集合类,该类具备的特点:无序,不可重复
ArrayList的构造函数:
ArrayList() 构造一个初始容量为 10 的空列表。
ArrayList(Collection<? extends E> c) 构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity) 构造一个具有指定初始容量的空列表。
下面的方法了解即可,因为我们实际开发中一般都是使用List接口中的一些方法
ArrayList中特有的方法(了解即可):
ensureCapacity(int minCapacity) 如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数
我们一般是使用ArrayList的构造函数指定初始容量
trimToSize() 将此 ArrayList 实例的容量调整为列表的当前大小。
LinkedList中特有的方法(了解即可):
addFirst(E e) 将指定元素插入此列表的开头。
addLast(E e) 将指定元素添加到此列表的结尾。
getFirst() 返回此列表的第一个元素。
getLast() 返回此列表的最后一个元素。
removeFirst() 移除并返回此列表的第一个元素。
removeLast() 移除并返回此列表的最后一个元素。
栈:先进后出
push() 将元素添加到此集合的开头
pop() 删除集合的首元素并返回
队列:先进先出
offer 将元素添加到此元素的末尾
poll 删除集合的首元素并返回
descendingIterator() 返回逆序的迭代器对象
下面是清除集合中的重复元素代码例子:
class Book{
int id;
String name;
public Book(int id , String name) {
this.id = id;
this.name = name;
}
@Override
public boolean equals(Object obj) {
Book book = (Book)obj;
return this.id == book.id;
}
@Override
public String toString() {
return "{ 书号:"+this.id+" 书名:"+this.name+" }";
}
}
public class Demo2 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(new Book(1001, "java编程思想"));
list.add(new Book(1002, "java核心技术"));
list.add(new Book(1003, "javaweb"));
list.add(new Book(1001, "java编程思想"));
System.out.println(clearRepeat(list));
LinkedList list1 = new LinkedList();
list1.add("狗娃");
list1.add("狗剩");
System.out.println(list1.poll());
System.out.println(list1);
}
public static ArrayList clearRepeat(ArrayList list) {
ArrayList newlist = new ArrayList();
Iterator it = list.iterator();
while(it.hasNext()) {
Book book = (Book)it.next();
if(!newlist.contains(book)) {
newlist.add(book);
}
}
return newlist;
}
}
49. ArrayList LinkedList中特有的方法的更多相关文章
- 47. List中特有的方法
集合的体系:--------------| Collection 单列集合的根接口----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复---------- ...
- ArrayList类中的contains()方法底层依赖的是equals()方法
ArrayList类中的contains()方法底层依赖的是equals()方法.若集合中的元素是自定义对象,则应该重写该类父类Object的equals()方法,否则对象永远都不相同(因为都是new ...
- 20、List集合中特有的方法
List里面的特有方法简介 List中除了Collection里面的方法以外,内部还有一些方法,通过这些方法,开发者可以更方便的操作List接口的实现类. package com.monkey1024 ...
- Java中的List接口特有的方法
import java.util.ArrayList; import java.util.List; /* List接口中特有方法: 添加 add(int index, E element) addA ...
- List接口中特有方法
import java.util.ArrayList; import java.util.List; /* List接口中特有方法: 添加 add(int index, E element) addA ...
- List集合与Set集合(ArrayList,LinkedList,Vector,HashSet,LinkedHashSet,可变参数)
List集合介绍及常用方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* java. ...
- ArrayList LinkedList Vector
ArrayList是基于数组实现的,没有容量的限制. 在删除元素的时候,并不会减少数组的容量大小,可以调用ArrayList的trimeToSize()来缩小数组的容量. ArrayList, Lin ...
- 【java基础】java中ArrayList,LinkedList
[一]ArrayList 一ArrayList的内部结构 (1)ArrayList内部维护的是一个Object数组 (2)ArrayList数组扩容后数组的长度的公式:旧的数组长度+(旧数组长度> ...
- C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;
ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口: 2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...
随机推荐
- idea设置忽略svn的文件或目录
1. 这个地方可以设置忽略的文件和目录,但是这里设置之后,我们在工程里面就看不到了 2. 这里设置提交是后要忽略的文件,比如我忽略的target目录,*.iml 我再1中设置了target目录发现我的 ...
- OpenGL学习——自定义Shader工具类
从文件读取Vertex Shader 和 Fragment Shader的工具类. 代码如下: Shader.h #ifndef Shader_h #define Shader_h // GLEW # ...
- MOS管知识大集
MOS管 增强型:就是UGS=0V时漏源极之间没有导电沟道,只有当UGS>开启电压(N沟道)或UGS<开启电压(P沟道)才可能出现导电沟道.耗尽型:就是UGS=0V时,漏源极之间存在导电沟 ...
- iptables 防火墙(下)
iptables 防火墙(下) 1. 常见的隐含匹配条件: 1.1 端口匹配: --sport 源端口.--dport 目的端口 1.2 TCP标记匹配: -tcp-flags 检查范围被设置的标记 ...
- EXCEL数据计算不准确的问题
今天,某部门的excel的数值计算,总是出现错误.如下图 ,我们的46那一栏是有前面8*6得出来的,但是结果却显示46,明明应该是48才对,然后再往上追,8是有前面的337-329得出来的,337是有 ...
- 类定义包含vecot<类>对象
#include "stdafx.h" #include <vector> using namespace std; class ControlPosition { p ...
- vbs,修改文件名
一次性能测试记录,因为项目要批量上传文件,奈何文件有50 * 2个,然后系统效验文件名,要不停地修改,找了一些资料整理脚本如下: strFolder = "\\xxxx\2018198_数据 ...
- 当我们在Java中新建一个对象的时候发生了什么?
- 【leetcode】965. Univalued Binary Tree
题目如下: A binary tree is univalued if every node in the tree has the same value. Return true if and on ...
- 阿里云资深技术专家黄省江:让天下没有难做的SaaS
导语:本文中,阿里云资深技术专家黄省江(花名禅笑)将聚焦“SaaS加速器——让天下没有难做的SaaS”,对伙伴来说,SaaS加速器帮助他们做好SaaS,卖好SaaS:对企业来说,SaaS加速器帮助他们 ...