List子集合__小记
来源:互联网 发布:支付宝更改绑定淘宝号 编辑:程序博客网 时间:2024/05/16 16:22
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子集合__小记
- 将list拆分成子集合
- 字符串子集合
- 子集合(算法)
- 穷举子集合
- 子集合的构造
- 子集合问题
- 如何从一个list集合当中移除一部分的子集合
- 子集构造 集合的子集合
- 排列组合子集合的算法
- 子集生成算法合集
- 无序子集合个数问题
- 子集算法(PHP): 求一个非空集合的子集
- 输出一个集合所有的子集合
- 划分两个子集使其合相等
- 最大相容活动子集合 贪心法
- 输出一个集合的所有子集合
- (每日算法)LeetCode --- Subsets(子集合)
- 选择营销自动化软件时需衡量的条件
- 微信定时发送消息
- content-type
- 文章标题
- phpstorm interpreter is not specified
- List子集合__小记
- Handler 消息机制
- Java 生成随机数
- linux版本的RAR压缩软件
- 安装codeblocks出现can't find compiler executable .....
- 通过jquery实现省市联动
- Open context.xml from /tomcat/conf folder and modify the context to match this :
- 支付宝小程序又上线新能力——云监控
- POJ-2533 Longest Ordered Subsequence (线性dp 最长上升子序列)