码迷,mamicode.com
首页 > 其他好文 > 详细

温故而知新,可以为师矣,学习到的东西不断回顾,往往能够发现自己的不足

时间:2019-05-23 09:13:10      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:学习   obj   实现类   span   false   哈希   包含   新建   set   

从上周开始我们学习了集合构架,下面我们开始回顾下:

一.首先先来回顾ArrayList类:父类是List接口,在往上父类Collection集合

public class Demo01 {
    public static void main(String[] args) {
        /**
         * list接口有序,可重复,有索引,可以用普通for循环
         */
        //新建arraylist类对象
        ArrayList<String> obj = 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<String> it = obj.iterator();
        while(it.hasNext()){
            String s = it.next();
            System.out.println(s);
        }
        System.out.println("**************");
        //因为list是有索引的,所以我们可以用普通for循环遍历集合元素
        for(int i=0;i<obj.size();i++){
            String s = obj.get(i);
            System.out.println(s);
        }
        System.out.println("**************");
        //移除元素,但是如果有相同元素,它只会移除第一个
        obj.remove("huahua");
        System.out.println(obj);
        System.out.println("**************");
        //集合中是否包含yeye这个元素
        boolean ye = obj.contains("yeye");
        System.out.println(ye);
        System.out.println("**************");
        //集合是否为空
        boolean em = obj.isEmpty();
        System.out.println(em);
        System.out.println("**************");
        //清空集合元素
        obj.clear();
        //最后检测集合中是否还有元素个数
        System.out.println(obj.size());



    }
}

输出结果是:

[ruirui, huahua, dandan, huahua, yeye, haohoa]
6
**************
[ruirui, huahua, huahua, yeye, haohoa]
**************
ruirui
huahua
huahua
yeye
haohoa
**************
ruirui
huahua
huahua
yeye
haohoa
**************
ruirui
huahua
huahua
yeye
haohoa
**************
[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类对象
        LinkedList<String> obj = 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());


    }
}

输出结果是:

xioye
halou
[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类对象
        HashSet<String> obj = 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]
false
true
0

总结:

1,set接口继承于Collection,它的子类是HashSet,HashSet的子类是LinkedHashSet

2,set接口的特点是无序,不允许重复元素存在,没有索引,只能通过iterator迭代器和增强型for循环遍历

3,但是LinkedHashSet是有序的

4,HashSet类底层是一个哈希表,所以查询快,是Set接口的实现类

 

温故而知新,可以为师矣,学习到的东西不断回顾,往往能够发现自己的不足

标签:学习   obj   实现类   span   false   哈希   包含   新建   set   

原文地址:https://www.cnblogs.com/liurui-bk517/p/10904929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!