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.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...
随机推荐
- Android开发:Handler的简单使用(一)
1.Handler是什么? 原文: A Handler allows you to send and process Message and Runnable objects associated w ...
- 你不知道的USB
USB的接口类型.定义和原理 目前USB接口类型已经更新到了USB3.1和USB Type-C类型,下面就对USB的类型进行介绍整理 一.UCB的通信协议类型 1.1 USB定义及类型 USB(Uni ...
- linux调用本地镜像
首先先让系统显示出来 iso 已经挂载 然后#mkdir /mnt/cdrom #mount /dev/cdrom /mnt/cdrom #df -H 查看是否已经挂载上 #cd /etc/ ...
- Spring boot ----RestTemplate学习笔记
****spring boot-----restTemplate 封装了HttpURLConnection,HttpClient,Netty等接口访问实现库 restTemplet包含以下部分 Htt ...
- Python的历史及介绍
Python的诞生 Python的创始人吉多·范罗苏姆(Guido van Rossum),在1989年12月的圣诞节期间,为了打发时间,决定开发一种新的脚本解释程序,作为ABC语言的继承. 现在,p ...
- mongodb 可视化工具
mongodb是用命令行输入的,有些人可能不太习惯,我自己找了下mongodb的一些可视化工具,发现了一款adminmongo很好用,这里介绍给你们用一下. github地址:https://gith ...
- 【JavaWeb项目】一个众筹网站的开发(八)后台页面详细设置
一.user.jsp改造 删除引入菜单 抽取导航栏 nav-bar.jsp,删除引入导航栏 删除引入main.jsp的到好烂 数据库里添加url 报错,url不对 没有/ url正确 action=& ...
- 重视项目排期,对dateline 有所敬畏
项目排期 = 个人任务完成 + 风险预估 + 意外情况 + 项目上下游依赖 个人任务完成 个人任务具体话 不要考虑私人情感,专注工作 风险预估 对可能出现的情况进行考虑 意外情况 对出现的意外情况提前 ...
- 完爆 Best Fit,看阿里如何优化 Sigma 在线调度策略节约亿级成本
摘要:2018 年“双 11”的交易额又达到了一个历史新高度 2135 亿.相比十年前,我们的交易额增长了 360 多倍,而交易峰值增长了 1200 多倍.相对应的,系统数呈现爆发式增长.系统在支撑“ ...
- 高级运维(二):搭建Nginx服务器、用户认证、基于域名的虚拟主机、SSL虚拟主机、Nginx反向代理
一.搭建Nginx服务器 目标: 在IP地址为192.168.4.5的主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能: 1> SSL加密功能 2> 设置Ng ...