【Java 集合 :Collection详解+案例分析】

集合

什么是集合?

数组就是集合,集合实际上就是一个容器,可以容纳其他类型的数据。集合是一个容器,是一个载体,可以一次容纳多个对象。实际开发中,Java连接数据库,数据库当中有10条记录,当把这10个数据查询出来,在java中会把这10条数据封装成10Java对象,然后将10个Java对象放到某一个对象当中,将集合传到前端,然后遍历集合,将一个数据一个数据展现出来。

比如 ,装10个苹果的购物袋,运输物资的飞机就是一个集合。

集合中不能直接存储基本数据类型,集合也不能直接存储Java对象,集合当中存储的都是Java对象的内存地址。

集合和数组的区别

集合的长度是可变的,数组的长度固定

集合中只能是引用的类型,数组中可以是基本数据类型,也可以是引用数据类型。

集合可以存储不同的类型,数组只能存储同一种数据。

java中集合的架构图

img

Collection集合

集合层次结构中的根界面 。 集合表示一组被称为其元素的对象。 一些集合允许重复元素,而其他集合不允许。 有些被命令和其他无序。 JDK不提供此接口的任何直接实现:它提供了更具体的子接口的实现,如SetList 。 该界面通常用于传递集合,并在需要最大的通用性的情况下对其进行操作。

Collection中常用的方法
Collection方法中用于添加元素的方法
返回值方法名作用
booleanadd(E e)确保此集合包含指定的元素(可选操作)。
booleanaddAll(Collection c)将指定集合中的所有元素添加到此集合(可选操作)。
。。。可选操作~。。。

案例

public class Demo {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<String>();//容器已经创建好了
        list.add("嘻嘻");
        list.add("哈哈");
        list.add("呵呵");
        System.out.println(list); //[嘻嘻,哈哈,呵呵]
        Collection<String> list1 = new ArrayList<String>();
        list1.add("对的");
        list1.add("正确");
        list1.add("嘿嘿");
        list.addAll(list1);//[嘻嘻,哈哈,呵呵,对的,正确,嘿嘿]
    }
}
Collection方法中用于删除元素的方法
返回值方法名作用
voidclear()从此集合中删除所有元素(可选操作)。
booleanremove(Object o)从该集合中删除指定元素的单个实例(如果存在)(可选操作)。
booleanremoveAll(Collection c)删除指定集合中包含的所有此集合的元素(可选操作)。

案例:

public class Demo2 {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<String>();//容器已经创建好了
        list.add("嘻嘻");
        list.add("哈哈");
        list.add("呵呵");
        System.out.println(list); //[嘻嘻,哈哈,呵呵]
        Collection<String> list1 = new ArrayList<String>();
        list1.add("对的");
        list1.add("正确");
        list1.add("嘿嘿");
        list.addAll(list1);//[嘻嘻,哈哈,呵呵,对的,正确,嘿嘿]
        
        System.out.println(list.remove("嘻嘻"));//true
        //[哈哈,呵呵,对的,正确,嘿嘿]
       
        Collection<String> list3 = new ArrayList<String>();
        list3.add("拉拉");
        list3.add("哈哈");
        list3.add("贴贴");
        list.removeAll(list3);
        System.out.println(list);////[呵呵,对的,正确,嘿嘿]
//        list.clear();
    }
}
Collection方法中用于判断,查找,转换元素的方法
返回值方法名作用
booleancontains(Object o)如果此集合包含指定的元素,则返回 true
booleancontainsAll(Collection c)如果此集合包含指定 集合中的所有元素,则返回true。
booleanequals(Object o)将指定的对象与此集合进行比较以获得相等性。
booleanisEmpty()如果此集合不包含元素,则返回 true
intsize()返回此集合中的元素数
Object[]toArray()返回一个包含此集合中所有元素的数组。

案例:

public class Demo3 {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<String>();//容器已经创建好了
        list.add("嘻嘻");
        list.add("哈哈");
        list.add("呵呵");
        System.out.println(list); //[嘻嘻,哈哈,呵呵]
        Collection<String> list1 = new ArrayList<String>();
        list1.add("对的");
        list1.add("正确");
        list1.add("嘿嘿");
        list.addAll(list1);//[嘻嘻,哈哈,呵呵,对的,正确,嘿嘿]
        
        System.out.println(list.size());//6
        //toArray();
        Object[] objects = list.toArray();
        System.out.println(objects);//地址
        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);
        }
        System.out.println(list.contains("对的"));//true
        System.out.println(list.contains("嘻嘻"));//false
        System.out.println(list.isEmpty());//false
    }
}
Collection遍利方法
for循环遍利集合
public class Demo2 {
    public static void main(String[] args) {
        Collection<Integer> list = new ArrayList<>();
        list.add(250);
        list.add(360);
        list.add(470);
        list.add(404);
        list.add(500);
        System.out.println(list);
        Object[] objects = list.toArray();

        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);
        }
    }
}
增强for循环遍利集合

语法格式:

for (集合中元素的数据类型 临时变量 : 集合或者数组){
    System.out.println(临时变量);
}

public class Demo3 {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("嘻嘻");
        list.add("嘿嘿");
        list.add("哈哈");
        list.add("拉拉");
        System.out.println(list);
        //String s : list
        //将list集合 进行迭代,每次取一个值然后赋值给 s
        //将list集合中的数据挨个的赋值给s
        for (String s : list) {
            System.out.println(s); 
            //嘻嘻
            //嘿嘿
            //哈哈
            //拉拉
        }
    }
}
迭代器遍利集合

语法格式:

Iterator<T> iterator = 集合的对象的引用.iterator();
While (iterator.hasNext()){
    System.out.println(iterator.next());
}
public class Demo3 {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("嘻嘻");
        list.add("嘿嘿");
        list.add("哈哈");
        list.add("拉拉");
        Iterator<T> iterator = list.iterator();
			While (iterator.hasNext()){
   				 System.out.println(iterator.next());
			}
            //嘻嘻
            //嘿嘿
            //哈哈
            //拉拉
    }
}
注意:

集合中不仅可以存储八大基本数据类型,以及引用数据类型,还有自定义的对象【重点】

案例:

class Student {
    private String name;
    private int age;

    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
public class Homework2 {
    public static void main(String[] args) {
        /**
         * 二、题目:自定义4个学生对象,添加到集合,并遍历。
         * 思路:
         *
         * 自定义Student学生类,四个部分。
         * 创建—个集合,用来存储学生对象。泛型: <Student>
         * 根据类,创建4个学生对象。
         * 将4个学生对象添加到集合中:add
         * 遍历集合:for、 size、get
         */
        List<Student> list = new ArrayList<>();
        list.add(new Student("张三",18));
        list.add(new Student("李四",28));
        list.add(new Student("王五",88));
        list.add(new Student("赵六",48));
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));//输出创建对象的信息(逐条打印输出)
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值