发表于: 2020-01-02 22:32:25

1 1112


今天学习的内容:


Map,List,Set,ArrayList关系



一、关系

Collection

--List:以特定顺序存储

--ArrayList、LinkList、Vector

--Set:不能包含重复的元素

--HashSet、TreeSet

Map

--HashMap、HashTable、TreeMap


Collection:Collection是一个父接口,List和Set是继承自他的子接口,Collection是最基本的集合接口,Java SDK中不提供直接继承自Collection的类,而是提供继承自他子接口的类,如List何Set。所用的Collection类都支持一个Iterator()方法来遍历。

List:List接口是有序的,会精确的将元素插入到指定的位置,和下面的Set接口不同,List接口允许有相同元素

ArrayList:实现可变大小的数组,允许所有的元素,不是同步的,也就是没有同步方法

LinkList:允许null元素,通常在首部或者尾部操作,所以常被使用做堆栈(stack)、队列(queue)和双向队列(deque)

Vector:类似于ArrayList,但Vector是同步的,Stack继承自Vector

Set:是一种不包含重复元素的Collection接口

HashSet:不能有重复元素,底层是使用HashMap来实现的

Map:此接口实现的Key到Value的映射,一个Map中不能包含相同的Key,每个Key只能映射一个Value

HashTable:实现了一个Key-Value的哈希表,每一个非null元素都可作为Key或者Value,HashTable是同步的

HashMap:和HashTable的不同之处是,非同步的,且允许null元素的存在

三、Array和Arrays   Collection和Collections

Array:是所以随机访问一串对象中,最有效率的一种,但是元素类型必须相同,且容量固定无法改变。

Arrays:此静态类专门操作array,提供搜索、排序、复制等静态方法

 

Collection:Java.util下的一个接口,是各种集合结构的父接口

Collections:Java.util下的一个专用静态类,他包含各种集合操作的静态方法,包括对集合的搜索、排序、线程安全等操作。

四、总结

涉及到堆栈、队列等操作,使用List接口,快速插入和删除应使用LinkList,随机访问元素使用ArrayList

单线程使用非同步类,多线程使用同步类

注意对HashTable的操作,作为Key的对象要覆写equals和hashCode方法

在各种Map中HashMap用于快速查找

最长使用的是ArrayList、HashSet、HashMap、Array





关于日志的学习,学习log4j的基本用法


Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。


Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显 示内容。


在src下创建log4j.properties 配置文件:


添加pom依赖:

创建log4jTest.java 测试文件:

运行运行log4jTest.java结果:


导致的原因:没有初始化log4j,需要把文件放在资源文件下面:

重新运行结果:

 生成的日志文件:



遇到的困难:

  无


收获:


学习了关于java 的各种集合,数组相关知识,了解了基本用法.

对log4j的日志系统有了基础了解.


明天的计划:


继续学习关于任务1的其他知识.










返回列表 返回列表
评论

    分享到