一、目的
- 學(xué)習(xí)集合的相關(guān)知識
- 掌握Collection接口方法
- 了解Lambda表達(dá)式的用法
- 學(xué)會自己創(chuàng)建代碼模板
二、技術(shù)及其使用
(1)Collection接口方法
1.Collection接口的方法
Collection<String> t1=new ArrayList();
t1.add("Jack");
t1.add("Merry");
System.out.println(t1);
2.刪除一個(gè)對象
t1.remove("Jack");
System.out.println(t1);
3.獲取元素個(gè)數(shù)
System.out.println(t1.size());
4.判斷是否包含一個(gè)元素
if (t1.contains("Merry")){
System.out.println("有Merry");
}else{
System.out.println("沒有Merry");
}
5.判斷是否為空
if (t1.isEmpty()){
System.out.println("是空的");
}
6.判斷兩個(gè)集合是否相同
Collection<String> t2=new ArrayList<>();
t2.add("Merry");
t2.add("Jack");
t2.add("Tom");
t2.add("Mark");
if (t1.equals(t2)){
System.out.println("兩個(gè)集合相同");
}else{
System.out.println("兩個(gè)集合不相同");
}
7.清空
t1.clear();
System.out.println(t1);
(2)集合的遍歷
1.使用Iterator來遍歷
hasNext 判斷是否有元素
next 獲取下一個(gè)對象
remove 刪除當(dāng)前遍歷過后的對象
Iterator iterator=t2.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
while (iterator.next()!=null){
System.out.println(iterator.next());
}
2.for-each 增強(qiáng)for循環(huán) 快速循環(huán)
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));
}
(3)
1.使用方式:定義一個(gè)類實(shí)現(xiàn)接口
ArrayClass ac=new ArrayClass();
int[] num={1,2,3,4,5,6};
YClass pc=new YClass();
ac.test(num,pc);
2.使用匿名類
ArrayClass ac=new ArrayClass();
int[] num={1,2,3,4,5,6};
ac.test(num, new Show() {
@Override
public void customShow(int element) {
}
});
3.使用Lambda表達(dá)式
如果參數(shù)是一個(gè)接口類對象,且接口里面只有一個(gè)方法
可以省略方法名
ArrayClass ac=new ArrayClass();
int[] num={1,2,3,4,5,6};
ac.test(num,(int element)->{System.out.println(element
);} );
4.閉包 enclusure把函數(shù)作為一個(gè)方法的參數(shù)
class ArrayClass{
public void test(int[] target,Show s){
for (int element:target){
s.customShow(element);
}
}
}
5.必須是接口 這個(gè)接口里面只有一個(gè)方法
interface Show{
void customShow(int element);
}
class YClass implements Show {
@Override
public void customShow(int element) {
}
}
三、demo目的及代碼
創(chuàng)建一個(gè)類Person:name age屬性
創(chuàng)建ArrayList對象保存多個(gè)Person對象
1.統(tǒng)計(jì)年齡大于30的人數(shù)
2.統(tǒng)計(jì)名字中有張的人數(shù)
public class Yclass {
public static void main(String[] args){
ArrayList<Person> personArrayList=new ArrayList<>();
Person p1=new Person("關(guān)羽",31);
Person p2=new Person("劉備",31);
Person p3=new Person("張學(xué)友",27);
Person p4=new Person("張遼",18);
Person p5=new Person("張飛",30);
personArrayList.add(p1);
personArrayList.add(p2);
personArrayList.add(p3);
personArrayList.add(p4);
personArrayList.add(p5);
int ageCount=0;
int zhangCount=0;
for (Person p:personArrayList){
if (p.age>30){
ageCount++;
}
if(p.name.contains("張")){
zhangCount++;
}
}
System.out.println("大于三十歲的人有"+ageCount+"人 "+"姓張的有"+zhangCount+"人");
}
}
class Person {
String name;
int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
}