Java 入门 33 集合Collection 及常用API

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

package com.ITheima.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * 目标:明确Collection 集合体系的特点
 */
public class Test {
    public static void main(String[] args) {

        //有序 可重复 有索引
        Collection list=new ArrayList();

        list.add("java");
        list.add("JS");
        list.add("Python");
        list.add("HTML");
        System.out.println(list);

        //无序 不重复  无索引
        Collection list1=new HashSet();
        list1.add("JAVA1");
        list1.add("JAVA2");
        list1.add("JAVA3");
        list1.add("JAVA4");
        list1.add("JAVA5");
        list1.add("false");
        System.out.println(list1);
    }
}
View Code

 

 

 

package com.ITheima.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * 目标:明确Collection 集合体系的特点
 */
public class Test {
    public static void main(String[] args) {

        //有序 可重复 有索引
        Collection list=new ArrayList();

        list.add("java");
        list.add("JS");
        list.add("Python");
        list.add("HTML");
        System.out.println(list);

        //无序 不重复  无索引
        Collection list1=new HashSet();
        list1.add("JAVA1");
        list1.add("JAVA2");
        list1.add("JAVA3");
        list1.add("JAVA4");
        list1.add("JAVA5");
        list1.add("false");
        System.out.println(list1);

        Collection<String> list2=new ArrayList<>();
        list2.add("JAV");
        list2.add("前端");

        //集合和泛型不支持基本数据类型 只能支持引用数据类型
        Collection<Integer> list3=new ArrayList<>();
        list3.add(23);
        list3.add(234);
        list3.add(235);
        
        Collection<Double> list4=new ArrayList<>();
        list4.add(23.4);
        list4.add(23.5);
        list4.add(23.6);
    }
}
View Code

 

 

 

package com.ITheima.Collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

/**
 目标:Collection集合的常用API.
 Collection是集合的祖宗类,它的功能是全部集合都可以继承使用的,所以要学习它。
 Collection API如下:
 - public boolean add(E e):  把给定的对象添加到当前集合中 。
 - public void clear() :清空集合中所有的元素。
 - public boolean remove(E e): 把给定的对象在当前集合中删除。
 - public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。
 - public boolean isEmpty(): 判断当前集合是否为空。
 - public int size(): 返回集合中元素的个数。
 - public Object[] toArray(): 把集合中的元素,存储到数组中。
 小结:
 记住以上API。
 */
public class Test1 {
    public static void main(String[] args) {
    //HashSet:添加的元素是无序,不重复,无索引
        Collection<String> c=new ArrayList<>();
        //1 添加元素,添加成功返回true
        c.add("JAVA");
        c.add("HTML");
        System.out.println(c.add("HTML"));
        c.add("MYSQL");
        c.add("Java");
        System.out.println(c.add("白马"));//true
        System.out.println(c);//[JAVA, HTML, HTML, MYSQL, Java, 白马]

        //2 清空集合的元素
//        c.clear();
//        System.out.println(c);

        //3 判断集合是否为空,空返回true,反之返回false
//        System.out.println(c.isEmpty());//true

        // 4 获取集合的大小
        System.out.println(c.size());//6

        //5 判断集合中是否包含某个元素
        System.out.println(c.contains("Java"));//true
        System.out.println(c.contains("黑马"));//false

        //6 删除将某个元素:如果有多个重复元素 默认删除前面的第一个
        System.out.println(c.remove("JAVA"));//true
        System.out.println(c);

        // 7 把集合转换成数组
        Object[] arr=c.toArray();
        System.out.println("数组:"+ Arrays.toString(arr));//数组:[HTML, HTML, MYSQL, Java, 白马]

        System.out.println("-----------扩展------------");
        Collection<String> c1=new ArrayList<>();
        c1.add("Java1");
        c1.add("Java2");
        Collection<String> c2=new ArrayList<>();
        c2.add("赵敏");
        c2.add("张无忌");
        //把addAll把c2集合中的元素全部倒入c1中去
        c1.addAll(c2);
        System.out.println(c1);//[Java1, Java2, 赵敏, 张无忌]
        System.out.println(c2);//[赵敏, 张无忌]
    }
}
View Code

 

 

package com.ITheima.Collection;


import com.ITheima.Utils.ArrayTool;

import java.util.ArrayList;
import java.util.Iterator;

/**
 目标:Collection集合的遍历方式。

 什么是遍历? 为什么开发中要遍历?
 遍历就是一个一个的把容器中的元素访问一遍。
 开发中经常要统计元素的总和,找最值,找出某个数据然后干掉等等业务都需要遍历。

 Collection集合的遍历方式是全部集合都可以直接使用的,所以我们学习它。
 Collection集合的遍历方式有三种:
 (1)迭代器。
 (2)foreach(增强for循环)。
 (3)JDK 1.8开始之后的新技术Lambda表达式(了解)

 a.迭代器遍历集合。
 -- 方法:
 public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的
 boolean hasNext():判断是否有下一个元素,有返回true ,反之。
 E next():获取下一个元素值!
 --流程:
 1.先获取当前集合的迭代器
 Iterator<String> it = lists.iterator();
 2.定义一个while循环,问一次取一次。
 通过it.hasNext()询问是否有下一个元素,有就通过
 it.next()取出下一个元素。
 小结:
 记住代码。
 */
public class Test2 {
    public static void main(String[] args) {
        ArrayList<String> lists=new ArrayList<>();
        lists.add("张无忌");
        lists.add("赵敏");
        lists.add("小昭");
        System.out.println(lists);//[张无忌, 赵敏, 小昭]

        System.out.println("--------------------------");
        //1 得到当前集合的迭代器对象
        Iterator<String> it=lists.iterator();
        //迭代器next()
  /*      String ele= it.next();
        System.out.println( it.next());
        System.out.println( it.next());
        System.out.println( it.next());*/

        //2  定义while循环
        //it.hasNext() 判断当前集合是否还有为遍历的元素
        while (it.hasNext()){
            String ele=it.next();
            System.out.println(ele);
        }

        
    }
}
View Code

 

 

package com.ITheima.Collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class Test3 {
    public static void main(String[] args) {
        Collection<String> lists=new ArrayList<>();
        lists.add("张三");
        lists.add("李四");
        lists.add("王五");

        //list.for +回车键 快速生成 集合for循环迭代器
        for (String ele : lists) {
            System.out.println(ele);
        }

        double[] scores={109,12,435,677};
        for (double score : scores) {
            System.out.println(score);
            if(score==12){
                score=199;//修改无意义 不会影响数组的值
            }
        }
        System.out.println(Arrays.toString(scores));//[109.0, 12.0, 435.0, 677.0]
    }
}
View Code

 

 

package com.ITheima.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;

public class Test4 {
    public static void main(String[] args) {
        Collection<String> lists=new ArrayList<>();
        lists.add("张三");
        lists.add("李四");
        lists.add("王五");

        System.out.println(lists);

        //forEach 遍历对象
//        lists.forEach(new Consumer<String>() {
//            @Override
//            public void accept(String s) {
//                System.out.println(s);
//            }
//        });
        //简化形式
        lists.forEach(s->{
            System.out.println(s);
        });
    }
}
View Code

 

 Movie 类

package com.ITheima.Collection;

public class Movie {
    private String name;
    private double score;
    private String actor;

    public Movie() {
    }

    public Movie(String name, double score, String actor) {
        this.name = name;
        this.score = score;
        this.actor = actor;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }
}
View Code

 

Test类

package com.ITheima.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;

public class TestDemo {
    public static void main(String[] args) {
        //1定义一个电影类
        Collection<Movie> movies=new ArrayList<>();

        //2 定义一个集合对象存储3部电影对象
        movies.add(new Movie("《你好,李焕英》", 9.5, "张小斐,贾玲,沈腾,陈赫"));
        movies.add(new Movie("《唐人街探案》", 8.5, "王宝强,刘昊然,美女"));
        movies.add(new Movie("《刺杀小说家》",8.6, "雷佳音,杨幂"));

        //3 遍历集合中的每个电影对象
        movies.forEach((s)->{
            System.out.println("片名"+s.getName());
            System.out.println("得分"+s.getScore());
            System.out.println("主演"+s.getActor());
        });
    }
}
View Code

 

posted @ 2022-06-29 21:41  还有什么值得拥有  阅读(20)  评论(0编辑  收藏  举报