一、javaSE (十六)List的子类、泛型、增强for循环、静态导入、可变参数

1:List的子类(掌握)

(1)List的子类特点

ArrayList:

底层数据结构是数組,查迿快,增删慢

线程不安全,效率高

Vector:

底层数据结构是数組,查询快,增删慢

线程安全,效率低

LinkedList:

底层数据结枃是链表,查询慢,增删快

线程不安全,效率高

(2)Arraylist

A:没有特有功能需要学习

B:案例

a: Arraylist存储字符串并遍历

b: Arraylist存储自定义对象并遍历

(3)Vector

A:特有功能

a:添加:

public void addElement (E obj)   --add()

b: 获取

public E elementAt (int index)   --get()

public Enumeration<E> elements() --iterator()

B:案例

a: Vector存储字符坐并遍历

b: Vector存储自定义对象并通历

(4)Linkedlist

A:有特有功能

a:添加

addFirst()

addLast()

b:删除

removeFirst (

removeLast(

c:获取

getFirst()

getLast()

B:案例9 tlast(

a: Linkedlist存储字符串并遍历

b: Linkedlist存储自定义对象并遍历

(5)案例:

A:去除集合中的多个字符串的重复元素

如果字符串的内容相同,即为重复元紊

B:去除集合中的多个自定义对象的重复元素

如果自定义对象的成员变量值都相同,即为重复元紊

C:用LinkedList模拟一个栈数据结构的集合类,并测试。

你要定义一个集合类,只不过内部可以使用 LinkedList来实现。

2:泛型(掌握)

(1)泛型概述

是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型

(2)格式

<数据类型>

注意:该数据类型只能是引用类型A

(3)好处

A:把运行时期的问题提前到了编译期间

B:避免了强制类型转换

C:优化了程序设计,解法了黄色警告线问题,让程序更玄全

(4)泛型的前世今生

A:泛型的由来

Object类型作为任意类型的时候,在向下转型的时候,会隐含一个转型问题

B:泛型类

C:泛型方法

D:泛型接口

E:泛型高级通配符

?

? extends E

? super E

(5)我们在哪里使用呢?

般是在集合中使用

3:增强for循环(掌握)

(1)是for循环的一种

(2)格式

for(元素的数据类型 变量名:数组或者Collection集合的对象){

使用该变量即可,该变量其实就是数组成者集合中的元素

}

(3)好处

简化了数组和集合的遍历

(4)弊端

增强for循环的目标不能为nu11,建议在使用前,先判断是否为nu1l

4:静态导入(了解)

(1)可以导入到方法级别的导入

(2)格式:

import static 包名...类名.方法名;

(3)注意事项

A:方法必须是静态的

B:如果多个类下有同名的方法,就不好区分了,还得加上前缀

所以一般我们并不使用静态导入,但是一定要能够看懂

5:可变参数(掌握)

(1)如果我们在写方法的时候,参数个数不明确,就应该定义可变参数

(2)格式:

絛饰符 返回值类型 方法名(数据类型... 变量){}

注意:

A:该变量其实是一个数组名

B:如果一个方法有多个参数,并且有可变参数,可变参数必须在最后

(3) Arrays工具类的一个方法

aslist()把数组转成集合

注意:这个集合的长度不能改变

原文地址:https://www.cnblogs.com/zhangchengbing/p/8278613.html

时间: 2024-10-09 17:48:55

一、javaSE (十六)List的子类、泛型、增强for循环、静态导入、可变参数的相关文章

List的三个子类,泛型,增强for循环

List的三个子类的特点ArrayList:底层数据结构是数组,查询快,增删慢.线程不安全,效率高.Vector:底层数据结构是数组,查询快,增删慢.线程安全,效率低.LinkedList:底层数据结构是链表,查询慢,增删快.线程不安全,效率高.List接口:ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高 可以存储重复元素 int indexOf (Object o)返回此列表中指定元素的第一个出现的索引,或 - 如果此列表不包含元素,或 - 1.void sort

java基础第十二篇之集合、增强for循环、迭代器和泛型

Collection接口中的常用方法: * 所有的子类子接口都是具有的 * 集合的方法:增删改查 * * public boolean add(E e);//添加元素 返回值表示是否添加成功 * public boolean remove(Object o);//删除元素,返回值表示是否删除成功 * 没有修改方法 * 查询元素的方法没有,但是 * public int size();//查询集合集合中元素的个数 * //其他方法: * public void clear();//清空集合 * p

苹果新的编程语言 Swift 语言进阶(十六)--泛型

? ? ? ? ??? ?泛型同意你定义一个宽松.可重用的函数或者类型.使用泛型能够避免代码的反复.也能以更清楚和抽象的方式来表达程序的意图. ? ? ? ? ? ?泛型是Swift语言提供的强大功能之中的一个,Swift提供的很多标准库都使用了泛型来创建,如Swift提供的数组和词典类型. 通过使用泛型,你能使用一个数组和词典来包括和存储不论什么类型的元素. ?? ? 1.1 泛型函数 ?? ? ? ? ? 使用Swift语言你能定义一个能够工作于随意类型的泛型函数.从而不必为每种类型都定义一

爪哇国新游记之十六----泛型单链表类

/** * 单链表节点类 * @param <T> */ class Node<T extends Object>{ protected T value; protected Node next; } /** * 单链表类 * @param <T> */ public class ChainList<T extends Object>{ private Node<T> first; public void addTail(T t){ Node&l

集合框架、泛型、迭代(java基础知识十六)

1.ArrayList存储自定义对象并遍历 此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException.* ArrayList存储自定义对象并遍历 ArrayList<Person> list = new ArrayList<>(); list.

Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础

结合之前的学习笔记以及参考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,只是作为参考,以苹果官方文档为准~ 十六.内存管理相关知识(二) 1.autorelease,自动释放机制 - (instancetype)autorelease; (1)自动释放池的创建 iOS5.0之前 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //进行一系列操作 //此处不可以使用

quick-cocos2d-x 学习系列之十六 塔防完结

quick-cocos2d-x 学习系列之十六 塔防完结 1.  math2d.lua文件 该文件实现了常用的数学函数. Dist函数实现两点的距离. radians4point求两点的夹角(弧度) pointAtCircle求圆上一个点的位置 pointAtLineToPoint求线段上与指定点距离最近的点 degrees2radians角度转换为弧度 radians2degrees弧度转换为角度 2.  utils.lua文件 2.1         drawCircle 返回newCirc

第十六章 多态性

相同函数名具有多态性: ①  译时的多态(由函数名来调用时体现):重载:同类,不同参 ②  运行时的多态(用指向不同类的指针来调用): 覆盖:  不同类,同参,基类有virtual(由指针的类型来决定,体现了多态性) 隐藏:①不同类,同参,基类无virtual②不同类,不同参(不论有无virtual)(由指针来决定,不能体现多态性) 1.  为什么要使用多重继承 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数.C++多态性是通过虚函数(virtual)来实现的. 2.

设计模式 ( 十六 ): Mediator中介者模式 -- 行为型

1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中. 对于一个模块或者系统,可能由很多对象构成,而且这些对象之间可能存在相互的引用,在最坏的情况下,每一个对象都知道其他所有的对象,这无疑复杂化了对象之间的联系.虽然将一个系统分割成许多对象通常可以增强可复用性,但是对象间相互连接的激增又会降低其可复用性,大量的相互连接使得一个对象似乎不太可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,而且对系