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>(){@Overridepublic void run() {System.out.println("Inner Run");}};}
}
//泛型接口
interface myInterface<T,Y>{void run();
}
class demo implements myInterface<String,Integer>{@Overridepublic 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;}
}

执行结果:

JavaSE基础———ArrayList、Vector和LinkedList 泛型 可变参相关推荐

  1. JAVASE基础模块二十四(泛型)

    JAVASE基础模块二十四(泛型) 泛型的引出 我们这样定义一个obj类的时候 使用的时候需要向下转型 会很麻烦 public class Fananan {public static void ma ...

  2. LinkedList ArrayList Vector的区别

    LinkedList ArrayList Vector的区别 LinkedList ArrayList Vector详解 LinkedList LinkedList底层结构是双向链表的形式,所以,当查 ...

  3. List接口实现类-ArrayList、Vector、LinkedList集合深入学习以及源代码解析

    学习List接口实现类 ArrayList  Vector  LinkedList List接口的实现类中最经常使用最重要的就是这三个:ArrayList.Vector.LinkedList. JDK ...

  4. java vector list,Java基础之:List——ArrayList Vector

    Java基础之:List--ArrayList & Vector ArrayList简单介绍 ArrayList实现了List接口,底层是一个数组,并实现了可变的功能.底层属性(transie ...

  5. 【转】ArrayList Vector LinkedList 区别与用法

    ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢 ...

  6. ArrayList、Vector、LinkedList的特点和区别

    ArrayList.Vector.LinkedList类均在java.util包中,均为可伸缩数组. 1)ArrayList和Vector都是基于存储元素的Object[] array来实现的,它们会 ...

  7. java集合之列表:ArrayList、Vector、LinkedList

    1 package com.jdk7.chapter4; 2 3 import java.util.ArrayList; 4 import java.util.LinkedList; 5 import ...

  8. javaSE基础——集合全面解析笔记

    javaSE基础--集合全面解析笔记 英文单词 一.容器定义 1.1.容器继承体系 二.Set--------容器类 部分方法数学集合意义 2.1 HashSet 2.1.1 基本用法 2.1.2 特 ...

  9. 【JavaSE 基础知识盲点小结】

    [JavaSE 基础知识盲点小结] 一.第一天: 1. 在 cmd 命令窗口问题: ①编译是: javac HelloWorld.java ②运行时是: java HelloWorld (类名 不加 ...

  10. Java面试题全集(上)+JavaSE基础

    三重:代码.底层内存.源码 第一阶段:开发常用 JavaSE基础.IDE.Maven.Gradle.SVN.Git.Spring.Spring MVC.Spring Boot.Spring Cloud ...

最新文章

  1. java与flex通信_Flex与Java通信教程
  2. 2.5万美元奖金!滴滴算法工程师详解专业赛事:2021 SIGSPATIAL GISCUP
  3. sql语句换行_Spark随笔|关于Bucket Table与SQL语句转换
  4. 手机腾讯视频软件如何开启护眼功能
  5. boot定时任务开启和关闭 spring_spring-boot 多线程并发定时任务的解决方案
  6. 汉仪字体安装后PPT找不到_字体不知道去哪下载?我教您
  7. myeclipse中tomcat热部署设置
  8. 南京年薪10万以上软件人才买房买车可获退税
  9. Reflection(反射)
  10. Day05_生命周期_组件进阶
  11. 在线教育项目(六)之讲师功能实现
  12. 复数Complex类
  13. 设计模式-文本编辑器
  14. PHP composer作用,PHP Composer详解
  15. java正则任意字符_正则表达式匹配任意字符(包括换行符)的写法
  16. 评自主创新与自主实现
  17. 发现孩子做作业用计算机,孩子写作业要用手机完成?家庭作业电子化,到底靠谱不靠谱...
  18. BZOJ1707: [Usaco2007 Nov]tanning分配防晒霜
  19. SEO买卖链接时的注意事项
  20. 如何做精品网站的心得

热门文章

  1. QBXT Day 4 数学,数论
  2. linux新手记录;可执行文件直接运行
  3. 《程序是怎样跑起来的》七
  4. SharePoint 2013 同步FBA认证用户
  5. 我们应该如何去了解JavaScript引擎的工作原理
  6. 各类4G手机进入工参模式查看手机信息
  7. bzoj1047-理想的正方形(二维单调队列)
  8. 基于visual c++之windows核心编程代码分析(35)实践NT服务的框架
  9. jquery之父john resig见面会及jquery最新动态
  10. 拓端tecdat|R语言基于ARCH模型股价波动率建模分析