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.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...
随机推荐
- Codeforces 251C Number Transformation DP, 记忆化搜索,LCM,广搜
题意及思路:https://blog.csdn.net/bossup/article/details/37076965 代码: #include <bits/stdc++.h> #defi ...
- 分分钟教你学会 ToolBar 的使用(转)
转自:http://blog.csdn.net/itguangit/article/details/52042203 1.和平常一样,新建一个Moudle 在xml布局文件中使用 Toolbar 控件 ...
- python_django_admin
admin 是Django提供的基于web的管理工具,是系统管理员用于数据的输入,删除和查询的管理工具. 超级管理员在settings中的集成:INSTALLED_APPS=['django.cont ...
- Jedis连接池的使用(转)
http://www.cnblogs.com/linjiqin/archive/2013/06/14/3135248.html 所需jar:jedis-2.1.0.jar和commons-pool-1 ...
- CodeFirst命令
CodeFirst get-help entityFramework NuGet命令 Add-Migration Adds a new mig ...
- IntelliJ IDEA2016.1 + maven 创建java web 项目[转]
最近开始使用idea 来写java项目了,这个很流行,相比Eclipse方便了很多.功能多了,相对应的使用的复杂度也较高了,因为网上很多的使用和创建项目的简单教程,都是基于老版本的,每个新版本都有不一 ...
- 帝国CMS数据库数据表详细说明
表名 解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_inf ...
- Shiro学习(1)简介
1.1 简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比spring Security,可能没有Spring Securi ...
- Vue源码------------- 数据响应系统的基本思路
在 Vue 中,我们可以使用 $watch 观测一个字段,当字段的值发生变化的时候执行指定的观察者,如下: var vm = new Vue({ data: { num:1 } }) vm.$watc ...
- 转-C++内联函数与宏定义区别
主要区别: 1.内联函数在编译时展开,而宏在预编译时展开. 2.在编译的时候,内联函数直接被嵌入到目标代码中去,而宏只是一个简单的文本替换. 3.内联函数可以进行诸如类型安全检查.语句是否正确等编译功 ...