Java学习week_03

*List: 有序并且可重复

ArrayList: 底层数组 特点:查询效率高,添加和删除效率低。 LinkedList:底层双链表 特点: 查询效率低,添加和删除效率高。 Vector: 底层数组 理解: 线程安全的ArrayList

*Set : 无序并且不可重复

-HashSet: 底层哈希表 JDK1.7之前: 哈希表(数组+链表) JDK1.8:哈希表(数组+链表+红黑二叉树)

-LinkedHashSet: 底层 哈希表 + 链表 方法同上HashSet -TreeSet:底层 红黑二叉树 特点:实现自然排序,查询某个元素效率较快。 添加元素,效率较低。 实现了自然排序。

方法:

E ceiling(E e) 返回此集合中最小元素大于或等于给定元素,如果没有此元素,则返回 null 。 E higher(E e) 返回严格大于给定元素的该集合中的最小元素,如果没有此元素则返回 null 。 E floor(E e) 返回此集合中最大的元素小于或等于给定元素,如果没有这样的元素,则返回 null 。 E lower(E e) 返回这个集合中最大的元素严格小于给定的元素,如果没有这样的元素,则返回 null 。 E last() 返回此集合中当前的最后(最高)元素。 E first() 返回此集合中当前的第一个(最低)元素。

-Collections: 此类仅由静态方法组合或返回集合。 它包含对集合进行操作的多态算法,“包装器。 理解: Colleciton集合的包装类。

-Java 8新特性 - lamada表达式

面向对象: 接口式编程 面向函数编程

lamada表达式组成: \1. 参数部分 () -参数类型可以省略 -当且仅当参数部分只有一个参数,则参数()可以省略 \2. -> \3. 函数体部分 {} 只有一个表达式,{}可以省略。 只有一条语句{}可以省略。

4.方法引用: - 类名::方法名 - 对象::方法名 - 类名:: new

-Stream 流式操作

接受声明于 java.util.function 包内的接口,例如 Predicate、Function、Consumer 或 Supplier, 那么可以向其传lambda表达式 -方法: static <T> Stream<T> generate(Supplier<T> s) :返回无限顺序无序流 forEach(Consumer action):对流中的每个元素执行给定的操作。 limit(long maxSize):限制流的大小,只取前N个元素。 filter(Predicate predicate):根据给定的条件对流进行过滤,只保留满足条件的元素。 map(Function<T, R> mapper):将流中的每个元素通过给定的映射函数进行转换。 flatMap(Function<T, Stream> mapper):将流中的每个元素通过给定的映射函数转换为一个新的流, 并将所有流合并为一个流。 sorted():对流进行排序,默认按照元素的自然顺序进行排序。

*Map

映射关系: key - value (键-值对象) key: 唯一的。

-HashMap: 底层哈希表 特点: HashMap类大致相当于Hashtable ,线程不安全,并允许键和值都允许为null。 方法: boolean containsKey(Object key) 如果此映射包含指定键的映射,则返回 true 。 boolean containsValue(Object value) 如果此地图将一个或多个键映射到指定值,则返回 true 。 void forEach(BiConsumer<? super K,? super V> action) 对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。 V get(Object key) 返回到指定键所映射的值,或 null如果此映射包含该键的映射。 boolean isEmpty() 如果此地图不包含键值映射,则返回 true 。 Set<K> keySet() 返回此地图中包含的键的Set视图。 V put(K key, V value) 将指定的值与此映射中的指定键相关联。 void putAll(Map<? extends K,? extends V> m) 将指定地图的所有映射复制到此地图。 V remove(Object key) 从该地图中删除指定键的映射(如果存在)。 boolean remove(Object key, Object value) 仅当指定的密钥当前映射到指定的值时删除该条目。 V replace(K key, V value) 只有当目标映射到某个值时,才能替换指定键的条目。 boolean replace(K key, V oldValue, V newValue) 仅当当前映射到指定的值时,才能替换指定键的条目。 int size() 返回此地图中键值映射的数量。 Collection<V> values() 返回此地图中包含的值的Collection视图。

-LinkedHashMap:链表+哈希表

-Hashtable: 哈希表 该类实现了一个哈希表,它将键映射到值。 [线程安全的,键和值都不允许为null]。 [为了从散列表成功存储和检索对象,用作键的对象必须实现hashCode方法和equals方法]。 方法: Enumeration<K> keys() 返回此散列表中键的枚举。

-TreeMap: 红黑二叉树 -ConcurrentHashMap: 哈希表 [支持检索的完全并发性和更新的高预期并发性的哈希表]

-泛型

1.泛型类定义: [访问修饰符] class 类名<泛型..>{ }

2.泛型方法: [访问修饰符] <泛型> 返回值类型 方法名(泛型类型 参数名){ }

泛型上限: - 格式: 类型名称<? extends 类> 对象名称\- 意义: 只能接收该类型及其子类 泛型上限: \- 格式:类型名称<? super 类> 对象名称` - 意义:只能接收该类型及其父类类型

- java.IO.*

作用:读写文件数据和文件属性 File: 文件和目录路径名的抽象表示 文件可认为是相关记录或放在一起的数据的集合. 构造方法: File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例。 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例。 方法: boolean canRead() 测试应用程序是否可以读取由此抽象路径名表示的文件。 boolean canWrite() 测试应用程序是否可以修改由此抽象路径名表示的文件。 boolean createNewFile() 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。 static File createTempFile(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。 boolean delete() 删除由此抽象路径名表示的文件或目录。 boolean exists() 测试此抽象路径名表示的文件或目录是否存在。 File getAbsoluteFile() 返回此抽象路径名的绝对形式。 String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 String getName() 返回由此抽象路径名表示的文件或目录的名称。 String getParent() 返回此抽象路径名的父 null的路径名字符串,如果此路径名未命名为父目录,则返回null。 File getParentFile() 返回此抽象路径名的父,或抽象路径名 null如果此路径名没有指定父目录。 boolean isFile() 测试此抽象路径名表示的文件是否为普通文件。 long length() 返回由此抽象路径名表示的文件的长度。 String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。 File[] listFiles(FileFilter filter) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。 boolean mkdir() 创建由此抽象路径名命名的目录。 boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。

*IO流

流定义 IO指的是Input/Output,IO流:输入输出流。 统称为数据流。 -流向划分: 1.输入流[Input] 2.输出流[Output] -数据传输单位方式划分: 1.字节流(InputStream|OutputStream) 2.字符流(Reader|Writer) 按功能分:1.节点流:用于直接操作目标设备的流 2.处理流:是对一个已存在的流的连接和封装,通过对数据的处理为程序提供更强大、灵活的读写功能。 File: 操作文件或目录各项属性和文件或者目录的创建删除 注意:IO流对象资源不会被垃圾回收器回收,所有一定记关闭IO,释放内存资源。

1.字节流: 图片,视频,音频等原始字节文件。 -FileInputStream 输入流如果文件不存在,则抛出FileNotFoundException。 -FileOutputStream 输出流如果文件不存在,则自动创建文件然后写入数据。

2.字符流 -FileReader(输入流) -FileWiter(输出流)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值