作者简介:大家好,我是未央;
博客首页:未央.303
系列专栏:Java初阶数据结构
每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!
前言
本节内容我们将介绍学习数据结构之前要了解掌握的内容,有关泛型和List接口;这个内容为后面数据结构的学习打下了坚实的基础,就让我们一起来认识他们吧!!!!!!!!!!!!
一、泛型的介绍
由于泛型的内容比较多,我在网上找到了一篇写的很好的泛型文章,如果想要学习有关内容,就去看看看吧!!!!!
链接如下:
传送门:
二、List的介绍
2.1 什么是List
List (Java Platform SE 8 ) (list官方文档)
2.2 ArrayList常见接口介绍
ArrayList(线性表):
2.2.2 ArrayList的toArray
ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。
toArray有两个重载的方法:
(1)list.toArray();
(2) list.toArray(Tl a);
说明:对于第一个重载方法,是将list直接转为Object[]数组;
第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为与list内容相間的类型;
集合转数组用方法
比如:
list.toArray(new String[list.size()])
此处要使用包装类;Integer[] tmp = new Integer[integerList.size()]; integerList.toArray(tmp);
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class ListDemo {
public static void main(String[] args) {
List<String> courses = new ArrayList<>();
courses.add("C 语言");
courses.add("Java SE");
courses.add("Java Web");
courses.add("Java EE");
// 和数组一样,允许添加重复元素
courses.add("C 语言");
// 按照添加顺序打印
System.out.println(courses);
// 类似数组下标的方式访问
System.out.println(courses.get(0));
System.out.println(courses);
courses.set(0, "计算机基础");
System.out.println(courses);
// 截取部分 [1, 3)
List<String> subCourses = courses.subList(1, 3);
System.out.println(subCourses);
// 重新构造
List<String> courses2 = new ArrayList<>(courses);
System.out.println(courses2);
List<String> courses3 = new LinkedList<>(courses);
System.out.println(courses3);
// 引用的转换
ArrayList<String> courses4 = (ArrayList<String>)courses2;
System.out.println(courses4);
// LinkedList<String> c = (LinkedList<String>)course2; 错误的类型
LinkedList<String> courses5 = (LinkedList<String>)courses3;
System.out.println(courses5);
// ArrayList<String> c = (ArrayList<String>)course3; 错误的类型
}
}
运行结果:
[C 语言, Java SE, Java Web, Java EE, C 语言]
C 语言
[C 语言, Java SE, Java Web, Java EE, C 语言]
[计算机基础, Java SE, Java Web, Java EE, C 语言]
[Java SE, Java Web]
[计算机基础, Java SE, Java Web, Java EE, C 语言]
[计算机基础, Java SE, Java Web, Java EE, C 语言]
[计算机基础, Java SE, Java Web, Java EE, C 语言]
[计算机基础, Java SE, Java Web, Java EE, C 语言]
总结
前两节内容我们对数据结构的学习做了铺垫,下一节内容我们将进入到数据结构的第一个线性表顺序表的学习当中;让我们一起加油吧!!!!!