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子集合__小记的更多相关文章

  1. [LeetCode] Subsets II 子集合之二

    Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...

  2. MongoDB学习笔记~根据子集合里某个属性排序

    回到目录 这个问题是这样的,有一个实体dog,里面有集合属性DogHistory,它里面有一些自己的属性,其中一个是SortNum,主要用来进行排序,而且这个排序可以影响主对象,即影响dog类,这个在 ...

  3. LeetCode 90. Subsets II (子集合之二)

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...

  4. [LeetCode] 90. Subsets II 子集合之二

    Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...

  5. 求N个元素的子集合个数

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt406 一个集合有n个元素,请问怎么算出来它的子集(包括空集和本身)是 2的n ...

  6. Dev GridControl 子集合标题

    显示效果: 设置: this.gridView3.OptionsView.ShowViewCaption = true; this.gridView3.ViewCaption = "资产明细 ...

  7. (转载) 数组a[]={3,5,2,4,1,8},要求从a中找出所有“和”等于10的子集

    背包问题.     不过就这道题目本身而言,由于集合a中只要6个元素,而不是成千上万,所以可以使用更直观的办法:     只要你能通过程序给出数组a中元素所组成的集合的所有的子集合(幂集),那么只需在 ...

  8. Swift--集合类型 数组 字典 集合

    数组 1.创建一个数组 var someInts = [Int]()空数组 someInts = []清空 var threeDoubles = Array(repeating: 0.0, count ...

  9. 基于visual Studio2013解决面试题之1309求子集

     题目

  10. [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 ...

随机推荐

  1. CentOS7---Nginx安装并配置虚拟主机

    1.源码安装nginx,并提供服务脚本 源码包的获取:官网下载 实验环境:和企业环境类似,关闭防火墙,禁用selinux,使用静态IP地址 安装步骤: 步骤一:安装Nginx所需的pcre库 [roo ...

  2. 完美的背景图全屏css代码 – background-size:cover?

    写主题样式的时候经常会碰到用背景图铺满整个背景的需求,这里分享下使用方法 需要的效果 图片以背景的形式铺满整个屏幕,不留空白区域 保持图像的纵横比(图片不变形) 图片居中 不出现滚动条 多浏览器支持 ...

  3. 【自用】无限级分类获取SQL语句

    自定义函数: 1 USE [ExpenseCenter_Fibrogen] 2 GO 3 /****** Object: UserDefinedFunction [dbo].[GetSubordina ...

  4. 探讨AIGC的崛起历程,浅析其背后技术发展

    摘要:本文主要讨论了AIGC(人工智能生成内容)的发展历程.现状.应用,浅析其背后技术发展.与华为云的联系,以及面临的挑战和展望. 本文分享自华为云社区<AIGC:人工智能生成内容的崛起与未来展 ...

  5. 文心一言 VS chatgpt (1)-- 算法导论1.1

    1.给出现实生活中需要排序的一个例子或者现实生活中需要计算凸壳的一个例子. 文心一言: 现实生活中需要排序的一个例子: 在一个商店里,顾客需要购买一些商品.他们需要按照价格从低到高排序,以便更容易地找 ...

  6. 2022-12-15:寻找用户推荐人。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。 对于示例数据,结果为: +------+ | name | +------+ | Wil

    2022-12-15:寻找用户推荐人.写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2. 对于示例数据,结果为: ±-----+ | name | ±-----+ | Will ...

  7. 2020-10-04:java中GC Root 对象有哪些?

    福哥答案2020-10-04:#福大大架构师每日一题# 简单回答:1.局部变量.2.静态引用的对象.3.常量引用的对象.4.JNI引用的对象. 中级回答:1.虚拟机栈(栈帧中的本地变量表)中引用的对象 ...

  8. 2022-07-17:1、2、3...n-1、n、n、n+1、n+2... 在这个序列中,只有一个数字有重复(n)。 这个序列是无序的,找到重复数字n。 这个序列是有序的,找到重复数字n。

    2022-07-17:1.2.3-n-1.n.n.n+1.n+2- 在这个序列中,只有一个数字有重复(n). 这个序列是无序的,找到重复数字n. 这个序列是有序的,找到重复数字n. 答案2022-07 ...

  9. pywin32和wmi的安装和测试

    E:\pyAPP\Madking\MadKingClient>python bin\NedStark.py collect_dataE:\pyAPP\Madking\MadKingClientT ...

  10. FPGA输出时钟jitter

    If customer performs simple clock forwarding from clock source -> FPGA clock input -> FPGA clo ...