集合 list

/**1集合框架的作用
 在实际开发中,我们经常会对一组相同类型的数据进行统一管理操作。到目前为止,我们
 可以使用数组结构,链表结构,二叉树结构来实现。
 数组的最大问题在于数组中的元素个数是固定的,要实现动态数组,必竟还是比较麻烦,
 自己实现链表或二叉树结构来管理对象更是不方便。
 在JDK1.2版本后,JAVA完整的提供了类集合的概念,封装了一组强大的、非常方便的集合框
 架API,让我们在开发中大大的提高了效率。T

 集合中分为三大接口:
 Collection、Map、Iterator
 集合框架的接口和类在java.util包中
 */
/**3、Collection接口
 Collection层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元
 素。一些collection允许有重复的元素,而另一些则不允许。一些collection是有序的,而另一些则是无序的。
 JDK不提供此接口的任何直接实现:它提供更具体的子接口(如 Set和List)实现。此接口通常用来传递collection,
 并在需要最大普遍性的地方操作这些collection。接口的定义:
 public interface Collection<E> extendslterable<E
 >*/
/**2ArrayList
 public class ArrayList<E>extends AbstractList<E>
 implements List<E>RandomAccessCloneableSerializable
 List接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括null在内的所有元
 素。除了实现List接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。*/

package com.JiHe;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

@SuppressWarnings("all")
/**1、List接口
 public interface List<E> extends Collection<E>
 有序的collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精
 确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。*/
public class list {

    /**
     * LinkedList
     * public class LinkedList<E> extendsAbstractSequentialList<E> implements List<E>Deque<E>CloneableSerializable
     * List接口的链接列表实现。实现所有可选的列表操作,并目允许所有元素(包括null)。
     * 除了实现List接口外,LinkedList类还为在列表的开头及结尾get、remove和insert元素提供了统一的命名方法。
     * */
    /**
     * 实现原理,采用双向链表结构实现
     * 2.适合插入,删除操作,性能高
     * */
  private static void linkedList(){
    LinkedList<String> list=new LinkedList();
      list.add("李老师");
      list.add("张老师");
      list.add("孙老师");
      list.add("毕老师");
      for (int i = 0; i <list.size() ; i++) {
          System.out.println(list.get(i));
      }
  }
    /**
     * vector
     * 1.实现原理,采用动态对象数组实现,默认构造方法创建了一个大小为10的对象数组
     * 2.扩充的算法:当增量为0时,扩充为原来大小上的2倍,当增加量大于0时,扩充为原来大小+增量
     * 3.不适合删除或插入操作
     * 4.为了防止数组动态扩充次数过多, vector时,给定初始容量
     * 5.线程安全,适合在多线程访问时使用,效率比较低
     * */
    private static void vector(){
        Vector<String> v=new Vector();
        v.add("李老师");
        v.add("张老师");
        v.add("孙老师");
        v.add("毕老师");
        for (int i=0;i<v.size();i++){
            System.out.println(v.get(i));
        }
    }
    /**Collection接口:用于储存对象单个对象的集合
    list接口:
     1.有序的,可以重复
     2.允许有多个null元素
     3.具体实现有常用的ArrayList ,Vector,LonkedList
     在实际开发中,我们如何选择list的具体实现?
     1、安全性问题
     2、是否频整插入,删除操作(LinkedList)
     3、是否是存储后遍历
     */
    /**
     *ArrayList(1.8)
     * 1.实现原理,采用动态对象数组实现,默认构造方法创建了一个空数组
     * 2.第一次添加元素,扩容量为10,之后扩充算法:原来数组大小加上原来数组的一半
     * 3.不适合进行删除或插入的操作
     * 4.为了防止数组动态扩充次数过多,ArrayList时,给定初始容量
     * 5.单线程中使用不安全,适合在单线程访问时使用,效率高
     * JDK1.2开始
     * */
    private static void ArrayList(){
        //使用集合来存储多个不同类型的元素(对象),那么下处理时比较麻烦,实际快发中不建议这样使用,
        //我们应该在一个集合中储存相同的类型对象
        List<String> list=new ArrayList();
        list.add("李老师");
        list.add("张老师");
        list.add("孙老师");
        list.add("毕老师");
        //list.add(10);
        //便利集合
        int size= list.size();
        for (int i=0;i<size;i++){
            System.out.println(list.get(i));//get取值
        }
        System.out.println(list.contains("李老师"));
        list.remove("孙老师");
        System.out.println(list.size());
        String[] array=list.toArray(new String[]{});
        for (String s:array){
            System.out.println(s);
        }
    }

    public static void main(String[] args) {
        ArrayList();
        System.out.println("-------------------");
        vector();
        System.out.println("-------------------");
        linkedList();
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒菡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值