List集合

1.单例集合框架结构

** Collection接口: **单例集合,用来存储一个个对象,是List、Set和Queue接口的父接口

**List接口:**存储有序的可重复的数据

ArrayList、LinkedList、Vector

**ArrayList:**作为List接口的主要实现类,线程不安全,效率高,查找快、增删慢;底层使用Object[] elementDat存储

**LinkedList:**线程不安全,查找慢、增删快,底层使用双向链表存储,效率高

**Vector:**线程安全,效率低,底层使用Object[] elementDat存储(不推荐使用)


1.1 Collection接口的常用方法

  • 添加

    add(Object obj) : 添加元素

    addAll(Collection c) : 添加集合中所有的元素

  • 删除

    clear() : 清除集合里的所有元素,长度变为0

    remove(Object obj) :删除指定的元素

    removeAll(Collection c) :删除指定集合中的所有元素

  • 判断

    isEmpty():返回集合是否为空,空为true,否则false

    contains(Object obj):返回集合里是否包含指定的元素

    ContainsAll(Collection c):返回集合中是否包含指定集合的所有元素

  • 获取

    seze():集合的大小

    Iterator iterator():获取迭代器对象

    Collection c1=new ArrayList<>();
    c1.add("hello");
    c1.add("world");
    c1.add("java");
    //获取集合的迭代器对象
    Iterator i=c1.iterator();
    while(i.hasNext()){//是否有下个元素
        String s=(String)i.next();//获取下一个元素
        System.out.println(s);
    
    }
    
  • 其它

    Object[] toArray():集合转换成数组

    //集合转数组
    Object[] obj=c.toArray();
    System.out.println(Arrays.toString(obj));
    

    retainAll(Collection c) : 获取两个集合的交集

1.2 List接口

List集合代表一个有序的集合,集合中的每个元素都有对应的顺序索引。List集合允许使用重复的元素,通过索引来访问指定位置的集合元素

1.2.1 常用方法
  • 增:add(Object obj)

  • 删:remove(int index) / remove(Object obj)

  • 改:set(int index,Object ele)

  • 查:get(int index)

  • 插:add(int index,Object ele)

  • 长度:size()

  • 遍历:①Iterator迭代器方式

    ​ ②增强for循环

    ​ ③普通for循环

    List list=new ArrayList();
        list.add("aa");
        list.add("bb");
        list.add("cc");
    
        list.remove(0);//[bb, cc]  删除第一个元素
        list.set(0,"AA");//[AA, bb, cc]    将第一个元素修改为AA
        System.out.println(list.get(2));//cc   获取下标为2的元素
        list.add(3,"FF");//[AA, bb, cc, FF]    将FF插入到下标为3处
        System.out.println(list);
        System.out.println(list.size());//获取集合的长度
    
  • 这里重点看遍历的三种方式

    ​ ①Iterator迭代器方式

    Iterator i=list.iterator();
        while(i.hasNext()){
            String string=(String)i.next();
            System.out.println(string);
        }
    

    ​ ②增强for循环

    for(Object s:list){
        System.out.println(s);
    }
    

    ​ ③普通for循环

    for(int i=0;i<list.size();i++){
        System.out.println(list.get(i));
    }
    
1.2.2 ArrayList

底层数据结构是数组,查询快,增删慢,线程不安全,效率高

1.2.3 LinkedList

底层数据结构是链表,查询慢,增删快,线程不安全,效率高

特有的方法

  • addFirst(E e) : 在最前面添加元素
  • addLast(E e) : 在最后面添加元素
  • getFirst() : 获取第一个元素
  • getLast() : 获取最后一个元素
  • E removeFirst() : 移除第一个元素
  • E removeLast() : 移除最后一个元素
1.2.4 Vector

底层数据结构是数组,查询快,增删慢,线程安全,效率低(不常用)

特有的方法:

  • addElement(E obj): 添加元素
  • E elementAt(int index): 在指定下标处对应的元素值
  • hasMoreElements(): 是否有更多元素
  • nextElement(): 获取下一个元素
1.2.5 Iterator

迭代器,设计模式的一种,主要用于遍历Collection集合中的元素

1.2.6 ListIterator

该方法继承了Iterator,可以正向或者反向遍历集合,且可以在迭代期间添加集合元素

List list=new ArrayList<>();
	list.add("hello");
	list.add("java");
	list.add("world");
ListIterator li=list.listIterator();
	while(li.hasNext()){
    String s=(String)li.next();
    if("java".equals(s)){
        //迭代器遍历,迭代器添加
        li.add("javaee");
   	 }
	}
system.out.println(list);//[hello, java, world, javaee]

成员方法:

​ boolean hasPrevious(): 是否上一个元素

	Object previous():  获取上一个元素

​ add(E ele): 添加元素

1.2.7栈Stack

继承了Vector

成员方法

E peek(): 获取栈顶元素

E pop(): 弹栈(获取栈顶元素并移除)

E pust(E e) : 压栈(将元素添加到栈中)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值