考核后及本周总结

这周还是主要学习了泛型和容器类。

实现List<E>接口的类有两个:链表类LinkedList<E>和数组列表类ArrayList<E>;都是线性类。

<E>链表类采用链表结构保存对象,使用循环表实现List<E>。特点:这种结构向链表中任意位置插入,删除元素是不需要移动其他他元素,链表的大小可以动态增大或减小的,但不具有随机存储特性。

ArrayList<E>数组列表类使用一堆数组实现LIstanbul<E>,该类实现的是可变数组,允许所有元素,包括null。特点:具有随机存取特性,插入,删除其他元素时需要移动其他元素,当元素很多是插入,删除操作的速度较慢添加元素时会自动增大,不会自动缩小,可以使用trimToSize()方法将数组的容量减小到数组列表的大小。

选用线性表原则:若要通过下标随机访问元素,但除了在末尾处之外,不在其它位置插入或删除操作,则应选择ArrayList<E>类;但需要在线性表的任意位置进行插入或删除操作,用选择LinkedList<E>。

LinkedList<E>类与ArrayList<E>类的大部分方法是继承其父类或祖先类,除此之外还各自定义了自己的方法。

对容器中元素进行访问时,经常需要按照某种次序对容器中的每个元素访问且仅访问一次,这就是遍历(迭代);遍历是指从容器中获取当前元素的后续元素。

LinkedList<E>集合:底层数据结构是双链表,查询慢,增删快,但是如果是操作的是首位元素,速度也是极快的

迭代器:iterator():生成一个迭代器对象,默认和指向集合的0索引处

对容器遍历的方式:

(1)foreach循环语句

(2)利用Collection<E>接口中定义的toArray()方法将容器对象转换为数组,然后利用循环语句对数组中的每个元素进行访问。

(3)利用size()和get()方法进行遍历。

(4)利用java提供的迭代功能

对于容器中元素的遍历次序,迭代器接口Iterator<E>支持对List<E>对象从前往后的遍历,但对于其子接口ListIterator<E>支持对List<E>对象的双向遍历.

集合接口Set<E>

Set<E>是一个不含重复元素的集合接口;Set<E>集合的对象不按特定的方式排序,只是简单的把对象加入集合中即可,但加的对象一定不能重复。

实现Set<E>接口的两个主要类是哈希集合类HashSet<E>及数集合类TreeSet<E>。

哈希集合类 HashSet<E>

哈希集合:是在元素的存储位置和元素的值k之间建立一个特定的对应关系f,使这个元素与一个唯一的存储位置相对应。(根据哈希码来存取集合中的元素。)(对应关系f称为哈希函数,该函数计算出的数值称为哈希码或散列索引,按这种关系建立的表称为哈希表,也称散列表)

HashSet<E>集合类是基于哈希表的Set<E>接口实现的。HashSet<E>集合不保证迭代顺序,但允许元素值为null。

比较两个加入哈希集合HashSet<E>中的元素是否相同:先比较哈希码方法hashCode()的返回值是否相同。若相同则再使用equals()方法比较其存储位置(即内存地址)。

对于哈希集合来说:若重写了元素对应类的equals()方法或hashCode()方法中的某一个,则必须重写另一个,以保证其判断的一致性。

数集合类TreeSet<E>

数集合类TreeSet<E>不仅实现了Set<E>接口,还实现了java.util.SortedSet接口,可以保证集合中的元素总是处于有序状态。TreeSet<E>类的大多数继承自其父类或祖先类

映射接口Map<K,V>

Map<K,V>11中的元素都是成对出现的,它提供了键(key)到值(value)的映射

映射接口Map<K,V>常用的实现类有哈希映射HashMap<K,V>和数映射TreeMap<K,V>

当然了,这周也进行了第二次考核,成绩也是整体较差,但较于上一次,这次有点略微进步,这次在进行编程题时可以有点下手的感觉,我总结的经验是还是要多练多做。

这是一道不完整,也有错误的编程,但是有一些套路

这也有问题,还是要多练。

下周继续学习Java基础,也要合理安排时间可以试试每天练一道算法,继续努力!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值