java16

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:案例
a:LinkedList存储字符串并遍历
b:LinkedList存储自定义对象并遍历
(5)案例:
A:去除集合中的多个字符串的重复元素
如果字符串的内容相同,即为重复元素
B:去除集合中的多个自定义对象的重复元素
如果自定义对象的成员变量值都相同,即为重复元素
C:用LinkedList模拟一个栈数据结构的集合类,并测试。
你要定义一个集合类,只不过内部可以使用LinkedList来实现。

2:泛型(掌握)
(1)泛型概述
是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。
(2)格式:
<数据类型>
注意:该数据类型只能是引用类型。
(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循环的目标不能为null。建议在使用前,先判断是否为null。

4:静态导入(了解)
(1)可以导入到方法级别的导入
(2)格式:
import static 包名....类名.方法名;
(3)注意事项:
A:方法必须是静态的
B:如果多个类下有同名的方法,就不好区分了,还得加上前缀。
所以一般我们并不使用静态导入,但是一定要能够看懂。

5:可变参数(掌握)
(1)如果我们在写方法的时候,参数个数不明确,就应该定义可变参数。
(2)格式:
修饰符 返回值类型 方法名(数据类型... 变量) {}

注意:
A:该变量其实是一个数组名
B:如果一个方法有多个参数,并且有可变参数,可变参数必须在最后
(3)Arrays工具类的一个方法
asList()把数组转成集合。
注意:这个集合的长度不能改变。

6:练习(掌握)
A:集合的嵌套遍历
B:产生10个1-20之间的随机数,要求随机数不能重复
C:键盘录入多个数据,以0结束,并在控制台输出最大值

7:要掌握的代码
集合存储元素,加入泛型,并可以使用增强for遍历。

时间: 2024-08-07 08:37:16

java16的相关文章

从头认识java-16.2 遍历文件夹

这一章节我们讨论一下遍历文件夹. 1.通过递归遍历,遍历项目的根目录 package com.ray.ch16; import java.io.File; public class Test { public static void showAllFiles(String path) { File root = new File(path); File[] files = root.listFiles(); for (File file : files) { if (file.isDirecto

从头认识java-16.6 ByteBuffer是怎样存储的?

这一章节我们来讨论一下ByteBuffer是怎样存储的? 1.例子: package com.ray.ch16; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; import java.nio.LongBuffer; public class Test { public static void main(String[] a

疯狂JAVA16课之对象与内存控制

java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建java对象时JVM为该对象在对内存中所分配的内存空间.内存回收指的是当该java对象失去引用,变成垃圾时,JVM的垃圾回收机制自动清理该对象,并回收该对象所占用的内存.由于JVM内置了垃圾回收机制会收失去引用的java对象所占用的内存,所以很多java开发者认为java不存在内存泄漏,资源泄露的问题.实际上是一种错觉,java程序依然会有内存泄漏. 由于JVM的垃圾回收机制由一条后台线程完成,本身也是非常消耗性能的,因此如

java-16习题

编写程序,产生10组彩票的"35选7"玩法的7个随机数.(1-35)随机数不能重复. 范围[1,35) 1 import java.util.Iterator; 2 import java.util.Random; 3 import java.util.TreeSet; 4 5 public class Test2 { 6 public static void main(String[] args) { 7 TreeSet<Integer>set=new TreeSet&l

廖雪峰Java16函数式编程-2Stream-1Stream简介

1. Stream Java8引入全新的Stream API 位于java.util.stream包 1.1 Stream API不同于java.io的InputStream/OutputStream java.io java.util.stream 存储 顺序读写的byte/char 顺序输出的任一Java对象 用途 序列化数据至文件/网络 内存计算/业务逻辑 1.2 Stream和List也是不同的 List元素已经分配并存储在内存中的,而Stream输出的元素并没有预先存储在内存中,它通常

廖雪峰Java16函数式编程-2Stream-4map

1. map()简介 Stream.map()是一个Stream的转换方法,把一个stream转换为另一个Stream,这2个Stream是按照映射函数一一对应的. 所谓map操作,就是把一种操作运算映射到序列的每个元素上. 例如:f(x)=x^2,对x计算它的平方,把这个函数映射到一个序列{1, 2, 3, 4, 5},就得到另一个序列{1, 4, 9, 16, 25}.这2个Stream是按照映射函数一一对应的 Stream<Integer> s = Stream.of(1, 2, 3,

java自学之路-day16

JAVA16 IO流 转换流 引入 l  中文系统默认编码表GBK l  FileWriter的构造方法假定默认编码GBK l  但是一些文本文件有可能是其他编码方式 l  所以引入转换流 可以对编码表进行设定 l  对之后开发互联网程序很重要 概述 l  字符流的一种 l  字符与字节的桥梁 l  继承Writer类 OutputStreamWriter l  Java.io. OutputStreamWriter l  继承Writer类 l  字符输出流 向文本文件写入数据 l  字符流转

Java重写《C经典100题》 --16

[程序16] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:从小数开始向下求最大公约数,从大数向上求最小公倍数.. 2.程序源代码: 1 /*本文转自博客:www.cnblogs.com/java-100 2 [程序16] 3 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 4 程序分析:从小数开始向下求最大公约数,从大数向上求最小公倍数. 5 */ 6 7 public class Java16 { 8 9 public static void main(S

用Java开发gRPC服务的例子分析

本文的代码例子来自:https://github.com/grpc/grpc-java  定义服务 这一步与其他语言完全一样,需要定义gRPC的服务.方法.request和response的类型. 完整的proto定义代码在:grpc-java/examples/src/main/proto/route_guide.proto 在proto中,下面几个定义是为我们生成 Java 类所特有的定义. option java_multiple_files = true; option java_pac