
-- - - -> implements ——>extends
一. 数组
- Array和ArrayList的区别:
- Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
- Array大小是固定的,存放对象时必须指定大小;ArrayList的大小是动态变化的。
- ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
- 在使用ArrayList时,相当于在运用ArrayList类型的对象,因此就跟运用其他的对象一样,可以使用“.”运算符来调用它的方法。使用Array时,用特殊的数组语法来操作它,数组的方法无法被调用,最多只能存取它的length实例变量。
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。 |
二. 集合
- 集合类型主要有3种:set(集)、list(列表)和map(映射)。(集合里面只能存放对象)
list:是一种知道索引位置的集合,可以多个元素引用相同的对象。
set:无序、不重复的集合、能知道某物是否已经存在于集合中,不会有多个元素引用相同的对象。
map:(映射关系)使用成对的键值和数据值。(用key来搜索)两个key可以引用相同的对象,但key不能重复,key可以是String,也可以是任何对象
集合接口分为:Collection和Map,list、set实现了Collection接口
三. 集合的遍历
//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);
}
}
网友评论