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.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...
随机推荐
- 深入Dagger:自定义AutoValue
前言 上一篇文章介绍了JavaPoet的原理和使用,这里在介绍一下AutoValue的原理,并模仿自定义实现一个AutoValue. AutoValue的是Google为了实现ValueClass设计 ...
- JavaScript_DOM(文件对象模型)
DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API(应用程序编程接口). DOM 描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分. DOM1 级将 HTML ...
- Raid,分区表与LVM逻辑卷
1.组Raid 磁盘前512K组合 前446K:MBR引导程序 中64K:分区表 后2K:校检码 Raid0:极致的读写速度,一个数据分散到多个盘去读写.但是极不安全,一旦坏了一块盘那么所有盘都将无法 ...
- 笔记64 Spring Boot快速入门(四)
SpringBoot中错误处理.端口设置和上下文路径以及配置切换 一.错误处理 假设在访问首页的时候会出现一些错误,然后将这些错误当作异常抛出,反馈给用户. 1.修改IndexController.j ...
- java中接口有什么用
1.通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类. 2.通过接口可以指明多个类需要实现的方法. 3.通过接口可以了解对象的交互界面,而不需了解对象所对应的类. 另:Java是单继承, ...
- rest_framework框架实现之(认证)
一认证 我们可以想想,我们要访问一个页面,需不需要对其进行认证,希望进入页面的时候看到哪些内容,一般是根据用户的不同而不同 首先,我们先设计一个表,如何知道对方通过了验证,我们可以考虑给其加一个tok ...
- leetcode-163周赛-1260-二维网格迁移
题目描述: 自己的提交: class Solution: def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int] ...
- Yii2 使用十一 在设置enablePrettyUrl时候,defaultAction的设置方法
启用美化Url的功能 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'enableS ...
- Eclipse中安装SVN插件的艰难旅程
我们写Java程序的人都知道Eclipse,也装过一些插件,比如Android开发的使用需要安装ADT等,如果代码提交的话我们可能需要安装git和svn的插件,但是这个插件我以前听过,但是一直没有安装 ...
- [SDOI2015]排序 题解 (搜索)
Description 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<=N),第i中 ...