【数据结构初阶】第二节.泛型和List的介绍

本文介绍了Java中的泛型基本概念,并详细讲解了List接口,特别是ArrayList的常用操作,包括如何将List转换为数组。内容涵盖了泛型的重要性、List的定义、ArrayList的接口介绍以及代码示例,为学习数据结构打下基础。
摘要由CSDN通过智能技术生成

作者简介:大家好,我是未央;

博客首页:未央.303

系列专栏:Java初阶数据结构

每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!

一、泛型的介绍

二、List的介绍

2.1 什么是List

2.2 ArrayList常见接口介绍

 2.2.2 ArrayList的toArray

总结



前言

本节内容我们将介绍学习数据结构之前要了解掌握的内容,有关泛型和List接口;这个内容为后面数据结构的学习打下了坚实的基础,就让我们一起来认识他们吧!!!!!!!!!!!!


泛型的介绍

由于泛型的内容比较多,我在网上找到了一篇写的很好的泛型文章,如果想要学习有关内容,就去看看看吧!!!!!

链接如下:
传送门:

http://t.csdn.cn/Do4Yw

List的介绍

2.1 什么是List

在这里插入图片描述

List (Java Platform SE 8 ) (list官方文档)

ArrayList (Java Platform SE 8 )ArrayList的官方文档

LinkedList的官方文档


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 语言]

总结

前两节内容我们对数据结构的学习做了铺垫,下一节内容我们将进入到数据结构的第一个线性表顺序表的学习当中;让我们一起加油吧!!!!!

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值