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>(){@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 泛型 可变参相关推荐
- JAVASE基础模块二十四(泛型)
JAVASE基础模块二十四(泛型) 泛型的引出 我们这样定义一个obj类的时候 使用的时候需要向下转型 会很麻烦 public class Fananan {public static void ma ...
- LinkedList ArrayList Vector的区别
LinkedList ArrayList Vector的区别 LinkedList ArrayList Vector详解 LinkedList LinkedList底层结构是双向链表的形式,所以,当查 ...
- List接口实现类-ArrayList、Vector、LinkedList集合深入学习以及源代码解析
学习List接口实现类 ArrayList Vector LinkedList List接口的实现类中最经常使用最重要的就是这三个:ArrayList.Vector.LinkedList. JDK ...
- java vector list,Java基础之:List——ArrayList Vector
Java基础之:List--ArrayList & Vector ArrayList简单介绍 ArrayList实现了List接口,底层是一个数组,并实现了可变的功能.底层属性(transie ...
- 【转】ArrayList Vector LinkedList 区别与用法
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢 ...
- ArrayList、Vector、LinkedList的特点和区别
ArrayList.Vector.LinkedList类均在java.util包中,均为可伸缩数组. 1)ArrayList和Vector都是基于存储元素的Object[] array来实现的,它们会 ...
- java集合之列表:ArrayList、Vector、LinkedList
1 package com.jdk7.chapter4; 2 3 import java.util.ArrayList; 4 import java.util.LinkedList; 5 import ...
- javaSE基础——集合全面解析笔记
javaSE基础--集合全面解析笔记 英文单词 一.容器定义 1.1.容器继承体系 二.Set--------容器类 部分方法数学集合意义 2.1 HashSet 2.1.1 基本用法 2.1.2 特 ...
- 【JavaSE 基础知识盲点小结】
[JavaSE 基础知识盲点小结] 一.第一天: 1. 在 cmd 命令窗口问题: ①编译是: javac HelloWorld.java ②运行时是: java HelloWorld (类名 不加 ...
- Java面试题全集(上)+JavaSE基础
三重:代码.底层内存.源码 第一阶段:开发常用 JavaSE基础.IDE.Maven.Gradle.SVN.Git.Spring.Spring MVC.Spring Boot.Spring Cloud ...
最新文章
- java与flex通信_Flex与Java通信教程
- 2.5万美元奖金!滴滴算法工程师详解专业赛事:2021 SIGSPATIAL GISCUP
- sql语句换行_Spark随笔|关于Bucket Table与SQL语句转换
- 手机腾讯视频软件如何开启护眼功能
- boot定时任务开启和关闭 spring_spring-boot 多线程并发定时任务的解决方案
- 汉仪字体安装后PPT找不到_字体不知道去哪下载?我教您
- myeclipse中tomcat热部署设置
- 南京年薪10万以上软件人才买房买车可获退税
- Reflection(反射)
- Day05_生命周期_组件进阶
- 在线教育项目(六)之讲师功能实现
- 复数Complex类
- 设计模式-文本编辑器
- PHP composer作用,PHP Composer详解
- java正则任意字符_正则表达式匹配任意字符(包括换行符)的写法
- 评自主创新与自主实现
- 发现孩子做作业用计算机,孩子写作业要用手机完成?家庭作业电子化,到底靠谱不靠谱...
- BZOJ1707: [Usaco2007 Nov]tanning分配防晒霜
- SEO买卖链接时的注意事项
- 如何做精品网站的心得