从上周开始我们学习了集合构架,下面我们开始回顾下:
一.首先先来回顾ArrayList类:父类是List接口,在往上父类Collection集合
public class Demo01 { public static void main(String[] args) { /** * list接口有序,可重复,有索引,可以用普通for循环 */ //新建arraylist类对象 ArrayListobj = new ArrayList<>(); //添加数据 obj.add("ruirui"); obj.add("huahua"); obj.add("dandan"); obj.add("huahua"); obj.add("yeye"); obj.add("haohoa"); //打印输出 System.out.println(obj); //集合元素个个数 System.out.println(obj.size()); System.out.println("**************"); //移除指定索引为2的集合元素 obj.remove(2); System.out.println(obj); System.out.println("**************"); //增强性for循环的用法 for(String a:obj){ System.out.println(a); } System.out.println("**************"); //iterator迭代器的用法 Iterator it = obj.iterator(); while(it.hasNext()){ String s = it.next(); System.out.println(s); } System.out.println("**************"); //因为list是有索引的,所以我们可以用普通for循环遍历集合元素 for(int i=0;i
输出结果是:
[ruirui, huahua, dandan, huahua, yeye, haohoa]6**************[ruirui, huahua, huahua, yeye, haohoa]**************ruiruihuahuahuahuayeyehaohoa**************ruiruihuahuahuahuayeyehaohoa**************ruiruihuahuahuahuayeyehaohoa**************[ruirui, huahua, yeye, haohoa]**************true**************false**************0
通过回顾,我们对ArrayList类的概念和方法的掌握是不是更上一层楼呢?
总结:
1,List接口是Collection集合的子类,ArrayList类是List接口的子类
2,List接口是有序集合,允许重复的元素出现
3,有索引,可以通过普通for循环遍历,也可以通过增强型for循环,还可以通过迭代器
4,ArrayList类最大的特点需要我们注意:元素增删慢,查询快
二.LinkedList类
我们首先来看一段代码:
public class Demo02 { public static void main(String[] args) { //新建LinkedList类对象 LinkedListobj = new LinkedList<>(); //添加数据元素 obj.add("ruirui"); obj.add("haohao"); obj.add("juahua"); //在第一个位置添加元素 obj.addFirst("xioye"); //在最后位置添加元素 obj.addLast("halou"); //返回第一个元素 String f = obj.getFirst(); System.out.println(f); //返回最后一个元素 String l = obj.getLast(); System.out.println(l); //移除元素 obj.remove("haohao"); System.out.println(obj); //打印输出元素个数 System.out.println(obj.size()); }}
输出结果是:
xioyehalou[xioye, ruirui, juahua, halou]4
总结:
1,List接口是Collection集合的子类,LinkedListt类是List接口的子类
2,List接口是有序集合,允许重复的元素出现
3,有索引,可以通过普通for循环遍历,也可以通过增强型for循环,还可以通过迭代器
4,LinkedList类最大的特点需要我们注意:增删快
5,LinkedList除了包含ArrayList的方法之外,还提供了add,get,remove,set。首部(Fist)和尾部(Late)方法
三.Set集合
下面我们先看干货:
public class Demo03 { public static void main(String[] args) { //新建HashSet类对象 HashSetobj = new HashSet<>(); obj.add("ruirui"); obj.add("huahua"); obj.add("haohao"); int size = obj.size(); System.out.println(obj); obj.remove("ruirui"); System.out.println(obj); boolean empty = obj.isEmpty(); System.out.println(empty); boolean huahua = obj.contains("huahua"); System.out.println(huahua); obj.clear(); System.out.println(obj.size()); }}
输出结果:
[haohao, huahua, ruirui][haohao, huahua]falsetrue0
总结:
1,set接口继承于Collection,它的子类是HashSet,HashSet的子类是LinkedHashSet
2,set接口的特点是无序,不允许重复元素存在,没有索引,只能通过iterator迭代器和增强型for循环遍历
3,但是LinkedHashSet是有序的
4,HashSet类底层是一个哈希表,所以查询快,是Set接口的实现类