集合知识梳理

本文深入探讨Java集合框架,包括数组与集合的区别,集合的特性,List与Set的使用,以及ArrayList与LinkedList的底层实现。同时,讲解了如何利用Collection接口进行集合操作,如添加、删除、查找元素,以及集合的遍历方法。
摘要由CSDN通过智能技术生成
package com.practice;

public class JiHe {
    public static void main(String[] args) {
        /*数组特点:
        *       1.存储多个同种类型的数据
        *       2.长度固定
        *       3.数组有默认值
        * */
        /*  集合的特点:
                1.长度可以随意更改
                2.集合只能存储对象
                3.集合没有默认值
        * */
        /*  Collection:(单列集合的根接口):根据存取数据方式的不同分为了List和Set
            List的特点:1.存储数据是有序的。2.数据的存放是有索引标志的。3.数据允许重复
            List分为ArrayList和LinkedList
            ArrayList:底层是数组,所以他是以数组的方式存取数据
            LinkedList:底层是链表,按照链表的方式存储数据

        */
    }
}

package com.practice;

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

public class JiHe1 {
    public static void main(String[] args) {
        //创建集合的对象
        //因为Collection是接口,所以要运动多态创建对象,父类的引用指向子类的对象
        Collection c=new ArrayList();//多态知识
        System.out.println(c);//[]
        //向集合中添加元素  add(Object e)
        c.add(1);//集合中只能添加对象,这里的1实现了自动装箱
        c.add("java");
        System.out.println(c);//[1, java]
        c.add(1);
        System.out.println(c);//[1, java, 1] 允许添加重复内容
        /*//清空元素的方法:clear()
        c.clear();
        System.out.println(c);//[]   元素清空*/
        //判断集合中是否包含某个元素   boolean contains(Object o)
        boolean a = c.contains("a");
        boolean java = c.contains("java");
        System.out.println(a);//false
        System.out.println(java);//true
        //根据元素的内容来删除某个元素  boolean remove(Object o)
        boolean remove = c.remove(a);
        System.out.println(remove);//false   返回值是是否删除成功,因为集合中没有a元素,所以删除失败
        //remove 一次只能删除重复数据中的一个,例如有两个a,他一次只能删除一个
        //获取集合的元素数   int size()
        int size = c.size();
        System.out.println(size);//3
        //集合转换为数组Object[]  toArray()  返回的类型是Object的数组
        //遍历集合的方式1   利益toArray()
        Object[] objects = c.toArray();
        for(int i=0;i< objects.length;i++){
            System.out.println(objects[i]);
        }


    }
}

package com.practice;

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

public class JiHe2 {
    public static void main(String[] args) {
        //创建对象
        Collection c=new ArrayList();
        //存放数值
        c.add("haha");
        c.add("java");
        method(c);
        //使用迭代器添加元素

    }

    private static void method(Collection c) {
        //遍历集合的第二种方式
        /*使用迭代器遍历集合
        * 步骤:1.创建迭代器的对象
        *        2.判断集合中是否有元素可取
        *       3.输出*/
        //创建迭代器的对象
        Iterator it = c.iterator();
        //判断是否有可取元素
        while(it.hasNext()){
            System.out.println(it.next());

        }

    }
}

package com.practice;

import java.util.*;

public class JiHe3 {
    public static void main(String[] args) {
        //往迭代器中添加元素,要用到List中的ListIterator,他中间有个add方法,不能用Collection中的Iterator,会报并发异常
        //创建List集合对象
        Collection c=new ArrayList();
        List l=new ArrayList();
        l.add("web");
        l.add("php");
        l.add("java");
        //method(c);
        //解决并发异常的方法
        //定义List的迭代器
        ListIterator it = l.listIterator();
        //判断并遍历数组
        while(it.hasNext()){
            //强转返回的值
            String s=(String)it.next();
            if(s.equals("java")){
                //l.add("html");   错误,不能往集合中添加元素,要往迭代器中添加元素
                it.add("html");
            }
        }
        System.out.println(l);

    }

    private static void method(Collection c) {
        c.add("web");
        c.add("php");
        c.add("java");
        //定义迭代器
        Iterator it1 = c.iterator();
        //判断并对集合遍历
        while(it1.hasNext()){
            //对返回的值进行强转
         //   Object next = it1.next();
            String next =(String) it1.next();
            if(next.equals("php")){
                c.add("html");
            }
        }
        System.out.println(c);//报错  并发异常
    }
}

package com.practice;

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


public class JiHe4 {
    public static void main(String[] args) {
        //集合遍历的第三种方式   增强for
        /*增强for的格式:
        * for(元素类型  变量名: 集合对象){
        *           }
        * 元素类型  变量名:用来接收每次遍历的元素
        * */
        Collection c=new ArrayList();

        c.add("web");
        c.add("php");
        c.add("java");
        for(Object o:c){
            System.out.println(o);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值