集合的例题

例题1:自定义MyList类,实现存取元素的功能。

  • 定义add方法,可以保存元素,添加MyList尾部。

  • 定义remove方法,可以获取到最后添加的元素,并从MyList中移除该元素。

  • 定义show方法,可以展示MyList中的元素。

例题2.随机验证码。
随机生成十组六位字符组成的验证码。
验证码由大小写字母、数字字符组成。

例题3.集合工具类。
定义findIndex方法,在某集合中,查找某元素,返回第一次出现的索引。
定义replace方法,将某集合中的某元素,全部替换为新元素。

集合的例题_第1张图片
Iterator接口
List接口存在iterator()方法,遍历集合中的元素Iterator主要有:

1.hasNext()是否还有下一个元素。
2.next()返回下一个元素。
3.remove()删除当前元素
集合的例题_第2张图片
Map接口
Map接口(key-value)其主要的实现类是:HashMap、Hashtable、LinkedHashMap和TreeMap,下面我们对这四个接口进行分析:

HashMap我们最常用的Map。它根据键的HashCode值来存储的,我们可以根据键来获取它的值,取值的顺序是随机的,因为键的值不可以重复,所以我们键的值可以为null,但是是唯一的值,允许多条记录的值为Null,是非同步的。
Hashtable跟HashMap唯一的区别就是Hashtable是线程同步的,所以导致与线程不能同时访问Hashtable,Hashtable写入的速度比HashMap慢。Hashtable不允许键或者值为Null。
LinkedHashMap保存了记录的插入顺序,在用Iteraor遍历LinkedHashMap时,先得到的记录肯定是先插入的,在遍历的时候会比HashMap慢,有HashMap的全部特性。
TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序(自然顺序),也可以指定排序的比较器,当用Iterator遍历TreeMap时,得到的记录是排过序的。不允许key值为空,非同步的;

遍历
在类集中提供了以下四种的常见输出方式:

1)Iterator:迭代输出,是使用最多的输出方式。

2)ListIterator:是Iterator的子接口,专门用于输出List中的内容。

3)foreach输出:JDK1.5之后提供的新功能,可以输出数组或集合。

4)for循环

集合的例题_第3张图片
hashSet有以下特点:
不能保证元素的排列顺序,顺序有可能发生变化
 不是同步的
 集合元素可以是null,但只能放入一个null

TreeSet类
TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态。TreeSet支持两种排序方式,自然排序 和定制排序,其中自然排序为默认的排序方式。向TreeSet中加入的应该是同一个类的对象。
TreeSet判断两个对象不相等的方式是两个对象通过equals方法返回false,或者通过CompareTo方法比较没有返回0
自然排序
自然排序使用要排序元素的CompareTo(Object obj)方法来比较元素之间大小关系,然后将元素按照升序排列。
Java提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现了该接口的对象就可以比较大小。
obj1.compareTo(obj2)方法如果返回0,则说明被比较的两个对象相等,如果返回一个正数,则表明obj1大于obj2,如果是 负数,则表明obj1小于obj2。
如果我们将两个对象的equals方法总是返回true,则这两个对象的compareTo方法返回应该返回0
定制排序
自然排序是根据集合元素的大小,以升序排列,如果要定制排序,应该使用Comparator接口,实现 int compare(T o1,T o2)方法。

你可能感兴趣的:(集合,泛型)