• 集合框架


    之前我们学到了数组,为我们批量处理数据提供了便利,但是数组的长度不可变,在实际的生活中,我们处理的数据大小都是未知的,可变的。所以就引入了集合。 集合存储的数据类型可以不同,长度可变,空间也不固定,用于储存,检索和传输对象。不能保存基础数据类型的数据,比如int,只能装箱变为Integer类型。

    一:最高级别Collection接口(单列数据)

    1.List接口是Collection的子接口,List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。

    1.1.ArrayList类是接口List的实现类,在我们处理集合时,增删不频繁时使用,查询多的时候使用。

    1.2.LinkedList类也是接口List的实现类。增删多的时候使用。因为它内部双向循环列表,所以查询时也比较费时。

    2.Set接口是Collection的子接口,Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。

    2.1.HashSet元素自动排序,不可有重复的内容。

    二:最高级别Map 1,HashMap实现了Map接口,继承AbstractMap

    三:下面是一些集合的基础操作代码(ArrayList)

    public static void main(String[] args) {
       List li=new ArrayList();
       //添加元素add(Object)
       li.add("吕布"); li.add("赵云");  li.add("典韦");li.add("关羽");
       li.add("马超"); li.add("黄忠"); li.add("张飞");
       System.out.println(li);
       //指定位置添加元素add(int,Object)
       li.add(4,"于禁");
       System.out.println(li);
       //用指定元素代替指定位置上的元素set(int,Object)
       li.set(5,"徐晃");
       System.out.println(li);
       //判断列表中是否有指定元素,返回值是boolean(contains(Object))
       System.out.println(li.contains("马超"));
       //返回指定位置上的元素get(int index)
       System.out.println(li.get(4));
       //返回指定元素的第一次索引值,如果没有出现,就返回为-1(indexOf(Object))
       System.out.println(li.indexOf("曹操"));
       //通过元素下标来移除元素remove(int).通过元素值来移除元素remove(Object)
       System.out.println(li.remove(4));
       //通过Collection接口的iterator方法遍历集合,并且通过他的remove方法移除元素
       Iterator it=li.iterator();
       while(it.hasNext()){
        if(it.next().equals("关羽")){
         it.remove();
        } 
       }
       System.out.print(li);
       li.set(5, "刘备");
       System.out.print(li);
    }

    LinkedList集合基础操作

    public static void main(String[] args) {
      // TODO Auto-generated method stub
       LinkedList list=new LinkedList();
      //添加元素add(Object)

    list.add("张山"); list.add("李四");list.add("王五");list.add(1,"徐六");
      System.out.println(list);
      System.out.println(list.size());
      //通过元素下标来移除元素remove(int).通过元素值来移除元素remove(Object)
      list.remove("王五");
      System.out.println(list);
      //list.clear();
      System.out.println(list);
      Iterator it=list.iterator();
      while(it.hasNext()){
       System.out.print(it.next());
      }
      ////返回指定元素的第一次索引值,如果没有出现,就返回为-1(indexOf(Object))
      System.out.println(list.indexOf("张山"));
      //将元素推入此列表所表示的堆栈。换句话说,将该元素插入此列表的开头。push(Object)
      list.push("刘七");
      System.out.println(list);
      //从此列表所表示的堆栈处弹出一个元素。换句话说,移除并返回此列表的第一个元素。pop()
      list.pop();
      System.out.println(list);
      //将制定位置的元素替代set(int,Object)
      list.set(1, "刘能");
      System.out.println(list);
      //移除集合的第一个元素removeFirst()
      list.removeFirst();
      System.out.println(list);
      //移除集合的最后一个元素removeFirst()
      list.removeLast();
      System.out.println(list);
     }

  • 相关阅读:
    在emacs上使用博客园的代码功能
    Programming Pearls笔记之一
    Virtualbox中Archlinux联网问题
    微信公众平台消息接口开发集成解决方案
    发送短信
    基于JMS的数据交换既数据互操作平台的解决方案
    Spring MVC基于注解的Junit测试
    获取设置一个字节某一个位的数值
    NotificationManager
    调用系统联系人列表
  • 原文地址:https://www.cnblogs.com/Kevin-Ma/p/5410256.html
Copyright © 2020-2023  润新知