几个JAVA集合中常用的接口学习:Collection、Iterator和Map

几个JAVA集合中常用的接口学习:Collection、Iterator和Map

集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充,它具有以下几个特点:

  • 性能高
  • 容易扩展和修改

一、Collection接口

常用的子类:

  • List
  • Set
  • Quene

注意:学习的过程应该习惯查看java的API文档,这是相当好的学习习惯!

1、List接口

  • List接口可以存放任意的数据,而且List接口中的内容可以重复
  • 它的常用子类有ArrayList、Vector等
  • 常用的操作有:
    • 判断集合是否为空:boolean isEmpty()
    • 查找指定的对象是否存在: int indexOf(Object o)

ArrayList和Vector的比较:

List代码示例:

List<String> list = null;
    list = new Vector<String>();//或者ArrayList
    list.add("A");
    list.add("B");
    list.add("C");

    for(int i = 0;i<list.size();i++){
        System.out.println(list.get(i));

    }
    System.out.println("-----------------------------------------");
    list.remove(1);

    for(int i = 0;i<list.size();i++){
        System.out.println(list.get(i));            
    }
    System.out.println("集合是否为空:"+list.isEmpty());           
    System.out.println("B是否存在:"+list.indexOf("B")); //返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
}

2、Set接口

  • Set接口中不能加入重复元素,但是可以排序。
  • Set常用子类:
    • 散列存放:HashSet
    • 有序存放:TreeSet

Set示例,根据这个示例可以比较一下HashSet和TreeSet的区别:

    Set<String> set1= null;

    set1 = new TreeSet<String>();

    set1.add("A");
    set1.add("B");
    set1.add("C");
    set1.add("D");
    set1.add("E");
    set1.add("F");
    set1.add("G");
    System.out.println(set1);


    Set<String> set2= null;

    set2 = new HashSet<String>();

    set2.add("A");
    set2.add("B");
    set2.add("C");
    set2.add("D");
    set2.add("E");
    set2.add("F");
    set2.add("G");
    System.out.println(set2);

结果输出:

[A, B, C, D, E, F, G]
[D, E, F, G, A, B, C]

二、Iterator接口

  • 集合输出的标准操作:标准的做法是使用当前这个Iterator接口进行迭代输出
  • 操作的原理是这样的:

    • Iterator是专门的迭代输出接口,就是指将元素一个个的进行判断,判断其是否有内容,如果有内容的话把内容取走,即下图中所示的一个过程:

Iterator的常用的几种方法:

常见用法:

    List<String> list = null;
    list = new ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");

    /*
        for(int i = 0;i<list.size();i++){
            System.out.println(list.get(i));

        }
    */

    Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());    
    }

三、Map接口

  • 保存的形式
    • key - value的键值对形式保存,例如:小凯-18753202373

简单应用实例:

Map<String, String> map = null;
    map = new HashMap<String, String>();
    map.put("key1", "wikey");
    map.put("key2", "目前");
    map.put("key3", "工作在");
    map.put("key4", "青岛");
    map.put("key5", "国瑞");

    if(map.containsKey("key1")){
        System.out.println("key存在");    
    }else{
        System.out.println("key不存在");   
    }
    if(map.containsValue("wikey")){
        System.out.println("value存在");      
    }else{
        System.out.println("value不存在");     
    }
    //遍历一下key
    Set<String> setKey = map.keySet();
    Iterator<String> iterator = setKey.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }
    System.out.println("---------------------------");
    //遍历一下value
    Collection< String > valueCollection = map.values();
    Iterator<String> iterator2 = valueCollection.iterator();
    while (iterator2.hasNext()) {
        System.out.println(iterator2.next());
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值