Collection知识点总结,List系列集合

目录

Collection系列集合

Collection集合的体系特点:

Collection集合的常用API:

Collection集合的遍历方式:

Collection储存自定义类型的对象:

案例:

List系列集合

List系列集合特点:

List系列集合遍历:

LinkedList完成栈和队列结构:

删除集合中重复的元素:


Collection系列集合

Collection集合的体系特点:

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

public class CollectionDemo01 {
    public static void main(String[] args) {
        Collection list=new ArrayList<>();
        //list系列集合:添加的元素是有序,可重复,有索引
        list.add("java");
        list.add("Mybatis");
        list.add(12);
        list.add(23);
        list.add(false);
        list.add(true);
         System.out.println(list);
         
        //Set集合:添加的元素是无序,不重复,无索引
        Collection set=new HashSet();
        set.add("java");
        set.add("Mybatis");
        set.add(12);
        set.add(23);
        set.add(false);
        set.add(true);
        System.out.println(set);
        //‘集合支持泛型
        //集合和泛型都只能支持引用数据类型,不支持基本数据类型,所以集合中储存的元素都认为是对象
        //集合中要储存基本数据类型要用包装类
        Collection<Integer> collection1=new ArrayList<>();
        collection1.add(10);
        collection1.add(14);
        collection1.add(14);
        System.out.println(collection1);
    }
}

Collection集合的常用API:

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

public class CollectionAPI {
    public static void main(String[] args) {
        Collection<String>list=new ArrayList<>();
        //1:添加元素
        list.add("张三");
        list.add("王麻子");
        list.add("李四");
        System.out.println(list);
        //2:清空集合中的数据
//        list.clear();
        //3:判断集合是否为空
        System.out.println(list.isEmpty());
        //4:获取集合的大小
        System.out.println(list.size());
        //5:判断是否存在某个元素
        list.contains("张三");
        //6:删除某一个元素
        list.remove("张三");//如有重复,只删除一个
        //7:把集合转换为数组
        Object[]arr=list.toArray();
        System.out.println("数组"+ Arrays.toString(arr));
        //8:合并两个集合
        Collection<String>c1=new ArrayList<>();
        c1.add("java");
        c1.add("java");

        Collection<String>c2=new ArrayList<>();
        c2.add("小龙女");
        c2.add("赵敏");

        c1.addAll(c2);//把c2中的元素给c1
        System.out.println(c1);
        System.out.println(c2);
    }
}

Collection集合的遍历方式:

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

public class CollectionDemo {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("杨冬");
        list.add("史强");
        list.add("小龙女");
        list.add("三体");
        System.out.println(list);

        //1:使用迭代器
        // 得到当前迭代器对象
        Iterator<String> it = list.iterator();
        //定义一个while循环
        while (it.hasNext()) {
            String name = it.next();
            System.out.println(name);
        }
        System.out.println("==================================");
        //2:增强for循环,可以遍历集合和数组
        //格式:
        //for(元素数据类型 变量名:数组或Collection集合){
        //在此处使用变量即可,该变量就是元素
        //}
        for (String arr : list) {
            System.out.println(arr);
        }
        System.out.println("==================================");
        //3:lambda表达式
        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
//---------------------------------------------------------
        list.forEach(System.out::println);//这一行代码与小3表示的代码一致

    }
}

Collection储存自定义类型的对象:

案例:


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

public class Test01 {
    public static void main(String[] args) {
        Collection<Movie>list=new ArrayList<>();
        Movie m0=new Movie("长津湖","吴京",9.8);
        Movie m1=new Movie("三体","不清楚",9.8);

        list.add(m0);
        list.add(m1);

        list.forEach(System.out::println);
    }
}


//============================电影类================================
public class Movie {
    private String name;
    private String actor;
    private double score;
    public Movie(){

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

    public String getName() {
        return name;
    }

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

    public String getActor() {
        return actor;
    }

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

    public double getScore() {
        return score;
    }

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

    @Override
    public String toString() {
        return "Movie{" +
                "name='" + name + '\'' +
                ", actor='" + actor + '\'' +
                ", score=" + score +
                '}';
    }
}

List系列集合

List系列集合特点:

有序:储存和取出的元素顺序一致

有索引:可以通过索引操作元素

可重复:储存的元素可以重复

List集合的特有方法:

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class Test_02 {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("三体");
        list.add("龙族");
        list.add("假如给我三天光明");
        
        //1:在索引位置插入元素
        list.add(2,"简爱");
        //2:删除索引位置的元素
        list.remove(2);
        //3:根据索引获取元素
        list.get(0);
        //4:修改某处索引的元素
        list.set(1,"java基础");
        //此外Collection集合所具有的方法List都可以用
    }
}

List系列集合遍历:

有四种,迭代器,增强for,lambda,for循环

这里写一下for循环,其他的本文上部已经写过。

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class Test_02 {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("三体");
        list.add("龙族");
        list.add("假如给我三天光明");
for (int i = 0; i < list.size(); i++) {
    String a= list.get(i);
    System.out.println(a);
}

LinkedList完成栈和队列结构:

import java.util.LinkedList;

public class Test_03 {
    public static void main(String[] args) {
        //LinkedList可以完成栈和队列结构(双链表)
        LinkedList<String> list=new LinkedList<>();
        //栈
        list.addFirst("第一");
        list.addFirst("第二");
        list.addFirst("第三");
        list.addFirst("第四");
        System.out.println(list);
        System.out.println(list.removeFirst());
        System.out.println(list.removeFirst());
        System.out.println(list.removeFirst());
        System.out.println(list.removeFirst());
        System.out.println("============================");
        //队列
        list.addLast("第一");
        list.addLast("第二");
        list.addLast("第三");
        list.addLast("第四");
        System.out.println(list);
        System.out.println(list.removeFirst());
        System.out.println(list.removeFirst());
        System.out.println(list.removeFirst());
        System.out.println(list.removeFirst());
    }
}

删除集合中重复的元素:

import java.util.*;

public class ListDelete {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("java");
        list.add("java");
        list.add("龙珠");
        list.add("龙族");

        //1:迭代器
//        Iterator<String> it= list.iterator();
//        while (it.hasNext()){
//            String ele=it.next();
//            if ("java".equals(ele)){
//                //list.remove("java");//不能使用,会报错
//                it.remove();//删除当前元素并且不会后移
//            }
//        }

        //2:for循环
//        for (int i = 0; i < list.size(); i++) {
//            String ele= list.get(i);
//            if("java".equals(ele)){
//                list.remove("java");
//                i--;
//            }
//        }
//        System.out.println(list);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值