List子集合__小记
List集合的子实现类的特点:
ArrayList:
底层数据结构是数组的形式,满足数组结构的特点:查询快,增删慢
从线程安全问题来看:线程不安全的,不同步,执行效率高
Vector:
底层数据结构是数组的形式,查询快,增删慢
从线程角度看:线程安全的类,同步,执行效率低
LinkedList:
底层数据结构是链接列表,特点:查询慢,增删快
从线程角度看:线程不安全的一个类,不同步,执行效率高
如果实现多线程程序,一般要是安全的类:
StringBuffer,Vector<E>,hashtable<K,V>
synchronized(同步锁对象){
代码;
}
如果在一般的需求中没有指明使用集合去完成,都默认采用ArrayList
如果需求中要考虑线程安全,那么使用Vector集合!
笔试过程中,一些需求用到集合:就是用ArrayList
ArrayList类:
//创建ArrayList集合对象
ArrayList array = new ArrayList() ;
//创建几个学生对象
Student s1 = new Student("高圆圆", 27) ;
Student s2 = new Student("唐嫣", 25) ;
Student s3 = new Student("邓超", 29) ;
Student s4 = new Student("黄晓明", 28) ;
//给集合添加元素
array.add(s1) ;
array.add(s2) ;
array.add(s3) ;
array.add(s4) ;
//获取迭代器并遍历
Iterator it = array.iterator() ;
while(it.hasNext()){
//java.lang.ClassCastException: org.westos_01.Student cannot be cast to java.lang.String
// String s = (String)it.next() ;
Student s = (Student) it.next() ;
System.out.println(s);
//迭代器后期被增强for循环替代
ArrayList 遍历寻不相等元素时,contain的底层代码依赖equal,默认比较地址值,需要重写equal方法,遍历需获迭代器对象。
Vector:
底层数据结构是数组的形式,查询快,增删慢
从线程角度看:线程安全的类,同步,执行效率低
特有功能:
public void addElement(E obj)------->相当于:add(Object e)
public Enumeration<E> elements()----->相当于:Iterator iterator() ;
Enumeration<E>接口:向量的组件枚举有两个方法
boolean hasMoreElements():------>相当于:hasNext()
Object nextElement():----------->相当于:next();
package Day14_Vector;
import java.util.Enumeration;
import java.util.Vector;
/**
* @author Aoman_Hao
*/
public class Demo {
public static void main(String[] args) {
//创建对象
Vector<Object> v = new Vector<>();
//添加元素
v.addElement("TZRRY");
v.addElement("T_T");
v.addElement("Aoman");
//public Enumeration<E> elements()
//----->相当于:Iterator iterator() ;
Enumeration<Object> elements = v.elements();
//遍历
/**
boolean hasMoreElements():------>相当于:hasNext()
Object nextElement():----------->相当于:next();
*/
while(elements.hasMoreElements()){
String next = (String) elements.nextElement();
System.out.println(next);
}
}
}
LinkedList:
底层数据结构是链接列表,特点:查询慢,增删快
从线程角度看:线程不安全的一个类,不同步,执行效率高
特有功能:
添加功能:
public void addFirst(E e)将指定元素插入此列表的开头。
public void addLast(E e)将指定元素添加到此列表的结尾。
获取功能:
public Object getFirst()返回此列表的第一个元素
public Object getLast()返回此列表的最后一个元素。
删除功能:
public Object removeFirst()移除并返回此列表的第一个元素。
public Object removeLast()移除并返回此列表的最后一个元素。
package Day14_LinkedList;
import java.util.LinkedList;
/**
* @author Aoman_Hao
*/
public class Demo {
public static void main(String[] args) {
LinkedList<Object> l = new LinkedList<>();
//添加
l.add("1TZRRY");
l.add("2TZR");
l.add("3Aoman");
//添加元素在首或尾处
l.addFirst("AAA");
l.addLast("DDD");
System.out.println(l);
//移除并返回元素
l.removeFirst();
System.out.println(l);
//获取第一个元素
System.out.println(l.getFirst());
}
}
List子集合__小记的更多相关文章
- [LeetCode] Subsets II 子集合之二
Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...
- MongoDB学习笔记~根据子集合里某个属性排序
回到目录 这个问题是这样的,有一个实体dog,里面有集合属性DogHistory,它里面有一些自己的属性,其中一个是SortNum,主要用来进行排序,而且这个排序可以影响主对象,即影响dog类,这个在 ...
- LeetCode 90. Subsets II (子集合之二)
Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...
- [LeetCode] 90. Subsets II 子集合之二
Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...
- 求N个元素的子集合个数
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt406 一个集合有n个元素,请问怎么算出来它的子集(包括空集和本身)是 2的n ...
- Dev GridControl 子集合标题
显示效果: 设置: this.gridView3.OptionsView.ShowViewCaption = true; this.gridView3.ViewCaption = "资产明细 ...
- (转载) 数组a[]={3,5,2,4,1,8},要求从a中找出所有“和”等于10的子集
背包问题. 不过就这道题目本身而言,由于集合a中只要6个元素,而不是成千上万,所以可以使用更直观的办法: 只要你能通过程序给出数组a中元素所组成的集合的所有的子集合(幂集),那么只需在 ...
- Swift--集合类型 数组 字典 集合
数组 1.创建一个数组 var someInts = [Int]()空数组 someInts = []清空 var threeDoubles = Array(repeating: 0.0, count ...
- 基于visual Studio2013解决面试题之1309求子集
题目
- [LeetCode] Partition to K Equal Sum Subsets 分割K个等和的子集
Given an array of integers nums and a positive integer k, find whether it's possible to divide this ...
随机推荐
- Linux进程管理(命令)入门
进程是一个运行中的程序 进程查看 ps 能够查看当前终端下运行的进程 $ ps PID TTY TIME CMD 26305 pts/0 00:00:00 bash 26312 pts/0 00:00 ...
- cocos2dx返回Android游戏黑屏解决办法
用来解决返回Android游戏加载资源时黑屏的问题.帖子过些日子估计就沉了,所以转出来,以供后面查询. 需要修改三个文件: 1) cocos2dx/platform/CCPlatformMacros. ...
- go slice使用
1. 简介 在go中,slice是一种动态数组类型,其底层实现中使用了数组.slice有以下特点: *slice本身并不是数组,它只是一个引用类型,包含了一个指向底层数组的指针,以及长度和容量. *s ...
- Golang每日一库之bcrypt
本文 官方文档: https://pkg.go.dev/golang.org/x/crypto/bcrypt 前言 之前讲过JWT Token https://www.cnblogs.com/zich ...
- [Pytorch框架] PyTorch 中文手册
PyTorch 中文手册 书籍介绍 这是一本开源的书籍,目标是帮助那些希望和使用PyTorch进行深度学习开发和研究的朋友快速入门. 由于本人水平有限,在写此教程的时候参考了一些网上的资料,在这里对他 ...
- [ZJOI2020] 序列 线性规划做法/贪心做法
线性规划做法 同时也作为线性规划对偶的一个小小的学习笔记. 以下 \(\cdot\) 表示点积,\(b,c,x,y\) 是行向量. \(A\) 是矩阵,对于向量 \(u,v\) 若 \(\forall ...
- 2022-11-30:小红拿到了一个仅由r、e、d组成的字符串 她定义一个字符e为“好e“ : 当且仅当这个e字符和r、d相邻 例如“reeder“只有一个“好e“,前两个e都不是“好e“,只有第三个
2022-11-30:小红拿到了一个仅由r.e.d组成的字符串 她定义一个字符e为"好e" : 当且仅当这个e字符和r.d相邻 例如"reeder"只有一个&q ...
- 2022-10-17:特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以
2022-10-17:特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等. 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量. 给定一个特殊的二进制序列 S,以 ...
- 2021-02-15:给定一个整型数组arr,代表数值不同的纸牌排成一条线。玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿。但是每个玩家每次只能拿走最左或最右的纸牌,玩家A和玩家B都绝顶聪明。请返回最后获胜者的分数。
2021-02-15:给定一个整型数组arr,代表数值不同的纸牌排成一条线.玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿.但是每个玩家每次只能拿走最左或最右的纸牌,玩家A和玩家B都绝顶聪 ...
- 2022-03-03:课程表 III。 这里有 n 门不同的在线课程,按从 1 到 n 编号。给你一个数组 courses ,其中 courses[i] = [durationi, lastDayi]
2022-03-03:课程表 III. 这里有 n 门不同的在线课程,按从 1 到 n 编号.给你一个数组 courses ,其中 courses[i] = [durationi, lastDayi] ...