8.16 集训第十五天 【数组&集合】

2019-08-17  本文已影响0人  草莓灵啾啾
Collection API(摘列)

-- - - -> implements ——>extends

一. 数组
  1. Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
  2. Array大小是固定的,存放对象时必须指定大小;ArrayList的大小是动态变化的。
  3. ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。

ArrayList常用方法

修饰符和类型 方法 说明
void add(int index, E element) 将指定的元素插入此列表中的指定位置
boolean add(E e) 将指定的元素添加到此列表的尾部
E remove(int index) 移除此列表中指定位置上的元素
boolean remove(Object o) 移除此列表中首次出现的指定元素(如果存在
void clear() 移除此列表中的所有元素
boolean isEmpty() 如果此列表中没有元素,则返回 true
boolean contains(Object o) 如果此列表中包含指定的元素,则返回 true
int indexOf(Object o) 返回此列表中首次出现的指定元素的索引或如果此列表不包含元素,则返回 -1
int lastIndexOf(Object o) 返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
二. 集合
三. 集合的遍历
       //1.使用Iterator来遍历
       hasNext 判断是否有元素
       next 获取下一个对象
       remove 删除当前遍历过后的对象
       Iterator iterator= t2.iterator();

       while (iterator.hasNext()){
           System.out.println(iterator.next());
       }

       //2.for-each 增强for循环 快速循环
       for(String obj:t2){
           System.out.println(obj);
       }

       //3.for-i
       for(int i=0;i<t2.size();i++){
           System.out.println(((ArrayList<String>) t2).get(i));
       }
四. Lambda表达式

1.Lambda 表达式主要用来定义行内执行的方法类型接口
2.Lambda 表达式免去了使用匿名方法的麻烦

    // 1.使用方式:定义一个类 实现接口
      ArrayClass ac = new ArrayClass();
       int[] num = {1,2,3,4,5,6};
       PXDClass pc = new PXDClass();
       ac.test(num, pc);
    // 2.使用匿名类
  ArrayClass ac=new ArrayClass();
  int[] num={1,2,3,4,5};

  ac.test(num, new Show() {
      @Override
      public void customShow(int element) {
          System.out.println(element);
      }
  });
   //3.使用Lambda表达式
      ArrayClass ac=new ArrayClass();
      int[] num={1,2,3,4,5};
      ac.test(num,(int element)->{System.out.println(element);})
   //4.如果只有一个参数 参数类型可以省略
      ArrayClass ac=new ArrayClass();
      int[] num={1,2,3,4,5};
      ac.test(num,element -> {System.out.println(element);});
   //5.如果代码块里面只有一行语句 大括号可以省略
      ArrayClass ac=new ArrayClass();
      int[] num={1,2,3,4,5};
      ac.test(num,element -> System.out.println(element));
//闭包enclusure 把函数作为一个方法的参数
class ArrayClass{
   public void test(int[] target,Show s){
       for(int element:target){
           s.customShow(element);
       }
   }
}

//必须是接口 且这个接口里面只有一个方法
interface  Show{
    void customShow(int element);
}
class PXDClass implements Show{

   @Override
   public void customShow(int element) {
System.out.println(element);
   }
}
上一篇 下一篇

猜你喜欢

热点阅读