JavaSE基础———ArrayList、Vector和LinkedList 泛型 可变参

1. ArrayList 类

  ArrayList是List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)

2. Vector 类

  (1)Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。

  (2)Vector的特有功能

    ● public void addElement(E obj): 将指定的组件添加到此的末尾,将其大小增加 1。
    ● public E elementAt(int index):返回指定索引处的组件。
    ● public Enumeration elements():返回此向量的组件的枚举。

代码演示:

package com.westos.demo;

import java.util.Enumeration;
import java.util.Vector;

public class Test {
    public static void main(String[] args) {
        Vector<Integer> integers = new Vector<>();
        integers.add(100);
        integers.add(600);
        integers.add(500);
        integers.add(400);
        integers.addElement(123456789);
        System.out.println(integers);
        Integer integer = integers.elementAt(4);
        System.out.println(integer);
        Enumeration<Integer> elements = integers.elements();
        while (elements.hasMoreElements()){
            Integer integer1 = elements.nextElement();
            System.out.println(integer1);
        }
    }
}

执行结果:
在这里插入图片描述
3. LinkedList 类

  (1)LinkedList 类是List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。

 (2)LinkedList的特有功能
    ● public void addFirst(E e) : 将指定元素插入此列表的开头。

    ● public void addLast(E e) :将指定元素添加到此列表的结尾。

    ● public E getFirst() :返回此列表的第一个元素。

    ● public E getLast() :返回此列表的最后一个元素。

    ● public E removeFirst() :移除并返回此列表的第一个元素。

    ● public E removeLast() : 移除并返回此列表的最后一个元素。

代码演示:

package com.westos.demo;

import java.util.LinkedList;

public class Test01 {
    public static void main(String[] args) {
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(1);
        linkedList.add(2);
        linkedList.add(3);
        linkedList.add(4);
        linkedList.add(5);
        System.out.println(linkedList);
        linkedList.addFirst(0);
        System.out.println(linkedList);
        linkedList.addLast(9);
        System.out.println(linkedList);
        linkedList.removeFirst();
        linkedList.removeLast();
        System.out.println(linkedList);
        Integer first = linkedList.getFirst();
        Integer last = linkedList.getLast();
        System.out.println(first+" "+last);
    }
}

执行结果:
在这里插入图片描述
4. 泛型

  (1)泛型是一种把类型明确的工作推迟到创建对象;或者调用方法的时候才去明确的特殊的类型。
  (2)泛型的格式:< 数据类型 > 泛型中的数据类型只能是引用数据类型。
  (3)泛型的好处:
    ● 把运行时期的问题提前到了编译期;
    ● 避免了类型的强制转换;
    ● 优化了程序;

      泛型只在编译期间有效,在运行期就擦除了。

  (4)泛型的出现是为了解决早期的Object类型可以接受任何类型的对象时的类型转换问题,所以Java提供了泛型类来解决这个安全问题。

泛型的演示:

package org.westos.demo;


//定义简单泛型类

public class GenericDemo<E> {
    private E first;
    private E second;
   public GenericDemo(E first,E second){
       this.first = first;
       this.second = second;
   }
   public E getFirst(){
       return this.first;
   }
   public void setFirst(E newValue){
       this.first = newValue;
   }
   //泛型方法
    public <T> void show(T t){
        System.out.println(t);
    }
    public static void main(String[] args) {
        new myInterface<String,Integer>(){

            @Override
            public void run() {
                System.out.println("Inner Run");
            }
        };
    }
}
//泛型接口
interface myInterface<T,Y>{
    void run();
}
class demo implements myInterface<String,Integer>{
    @Override
    public void run(){
        System.out.println("run");
    }
}

5.可变参数

  (1)可变参数是用于在定义方法时不知道该定义多少个参数。
  (2)格式:修饰符 返回值类型 方法名(数据类型 … 变量名){ }
  (3)如果一个方法有多个参数且包包含可变参,可变参一定是最后一个。
  (4)可变参的实质是数组。

代码演示:

package org.westos.demo;

public class Test1 {
    public static void main(String[] args) {
        int sum = getSum(1, 2, 3, 4, 5);
        System.out.println(sum);
    }
    public static int getSum(int...a){
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            sum += a[i];
        }
        return sum;
    }
}

执行结果:
在这里插入图片描述

发布了58 篇原创文章 · 获赞 7 · 访问量 2302

猜你喜欢

转载自blog.csdn.net/weixin_42492089/article/details/102925599