一、重点知识
单列集合框架结构
|----Collection接口:单列集合,用来存储一个一个的对象
|----List接口:存储序的、可重复的数据。 -->“动态”数组
|----ArrayList、LinkedList、Vector
|----Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”
|----HashSet、LinkedHashSet、TreeSet
数组也体现了多态性,定义object类型的数组,往里面存入string类型数据也是可以的
类型固定算数组的好处,而且,它有object类型数组,也等价于解决了这个问题
集合和数组是有相关性的
String类型数组是可以序列化的,意味着可以传输
在Map里也是可以多对一不能一对多,类似于函数的映射
自己能决定用数组还是集合时候都用集合,数组在某些规定下用,例如方法的参数,或者返回值是数组时
Contains比较的是内容
Contains比较时候是拿着目标类中的equals方法重上向下比较的
Collection中不能用基本数据类型,用了也是自动装箱
Containsall测试的是包含关系
Remove也用到了equals方法
Collection中的equals比不比较有序还得看是哪种子接口的实现类
可变形参等同于数组
二、重点问题
1.java清空Scanner缓冲区的方法
一、不调用具体的next()方法,就调用next方法,接受一个字符串再进行转换,就不会出现输入时的异常而导致的缓冲区不能刷新了
二、加一个重新刷新缓冲区的操作,重新定义一个scanner对象
2.关于Arrays.aslist返回的Arraylist和util包下的Arraylist区别
调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的是Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重新,所以会抛出异常。
https://blog.csdn.net/qq_39416311/article/details/83688591
三、课堂知识
3.1数组概述
数组:存储一组相同类型的数据。理解为容器,装数据。里面的元素,就是存储的一坨数值。靠下标。
数组的局限:定长
要想使用,需要先创建数组。
要想创建数组,需要先指定大小。
一旦一个数组创建了,那么长度不能更改。
3.2集合
集合框架:也叫容器类。理解为装数据的。
|----Collection接口:单列集合,用来存储一个一个的对象
* |----List接口:存储序的、可重复的数据。 -->“动态”数组
* |----ArrayList、LinkedList、Vector
* |----Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”
* |----HashSet、LinkedHashSet、TreeSet
概念:动态存储多个对象。
3.2.1、Collection接口
容器的大小:
数组:arr.length,属性
字符串:str.length(),方法
集合:list.size();
集合框架的最大的父接口:规定的都是集合容器最基本的功能。
//常用方法:
add(元素);//向容器中添加元素
remove(元素);//从容器中移出某个元素
size();//容器的大小,存储的元素的个数
contains(元素);//是否包含指定的元素
clear();//清空容器
iterator();//迭代器
//其他方法
addAll(容器);//向当前容器中,添加所有了另外一个容器中的所有的元素
removeAll(容器);//从当前容器中,删除所有另一个容器的元素
isEmpty();//判断容器是否为空
retainAll();//交集
网友评论