集合(Collection接口)的-(大体)的概念和常用方法

集合(collecton)的概念和集合的常见用法

1-集合的基础概念

java集合框架
 collection接口:单列集合,用来存储一个一个的对象
           List接口:存储有序的、可重复的数据  --> "动态"数组
                    ArrayList、linkedList、Vector

           set接口:存储无序的、不可重复的数据  -->"高中的"集合
                     HashSet、LinkedHashSet、treeSet

 Map接口:双列集合,用来存储一对(key - value)一对的数据     -->"高中的" y = f(x)
                       HashMap、LinkedHashmap、TreeMap、Hashtable、Properties

 

                                                                    集合(collection)的常用方法(1 - 15)

person类里面的内容

下面person类的内容

package _366After.src.javeTeacher.gather.learn_gather;

import java.util.Objects;

public class person {
    private String name;
    private int age;

    public person() {
    }

    public person(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 "person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        person person = (person) o;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }


}

主体内容:

package _366After.src.javeTeacher.gather.learn_gather;

import org.testng.annotations.Test;

import java.util.*;


//Collection接口中的使用方法
//总结:
//*当我们要添加Obj时,要求obj所在的类要----重写equal方法


public class Gather {
    @Test
    public void test1() {
        Collection collection = new ArrayList();
        
        //1- add(Object e); //将元素e,添加到集合coll中
        collection.add("aa");
        collection.add("BB");
        collection.add(123);//自动装箱子
        collection.add(new Date());
        collection.add(new person("张三", 20));
        collection.add(new person("李四", 25));


        
        //2- size //获取添加元素的个数
        System.out.println(collection.size());

        
        //3- addAll(Collection coll1);//将coll1集合的元素添加到当前的集合中
        Collection Coll1 = new ArrayList();
        Coll1.add("CC");
        Coll1.add("dd");
        collection.addAll(Coll1);  //collection使用addAll  --将Coll1,加到自己的集合中

        
        //4- isEmpty  -- 判断当前集合是否为空
        System.out.println("判断当前的集合是否为空 =  " + collection.isEmpty());

        
        //5- clear  --清空集合里面的内容
        /*
        --先把5-注销,不然下面都是空
        collection.clear(); //我们清空完,再看看isEmpty是否为空
        System.out.println("使用完clear--再判断当前的集合是否为空 =  "+collection.isEmpty());
        */

        
        
        //6- contains(Object obj )判断当前集合中是否包含obj  --true/false
        //检查(XX)这个数,是否在集合中
        boolean contains = collection.contains("dd");
        boolean contains1 = collection.contains(new person("张三", 20));
        //contains这个方法比较的是equal方法,在person类中重写equal方法就变成true了¬
        System.out.println("判断当前集合中是否包含XX = " + contains);
        System.out.println("判断当前集合中是否包含-张三 = " + contains1);

        
        //7- containsAll --- 判断(形参coll1)中的所有元素是否都存在当前集合中
        boolean conAll = collection.containsAll(Coll1);
        System.out.println("判断(形参coll1)中的所有元素是否都存在当前集合中= " + conAll);//ture,因为collection.addAll(Coll1);
    }

    
    @Test
    public void test2() {
        Collection collection = new ArrayList();
        collection.add("aa");
        collection.add("BB");
        collection.add(123);//自动装箱子
        collection.add(45);//自动装箱子
        collection.add(67);//自动装箱子
        collection.add(new Date());
        collection.add(new person("张三", 20));
        collection.add(new person("李四", 25));

        
        //8- remove 移除数据 --放回值为Boolen  --->true为移除成功/false
        boolean remove = collection.remove(123);
        System.out.println("查看是否移除成功= " + remove);
        System.out.println("内部信息-被移除后 = " + collection);

        
        //9- removeAll  -->以Coll1的内容为模版,在 Collection 删除与coll1相同内容的部分,当时coll1不受影响
        //模版删除
        Collection coll1 = Arrays.asList(45, 67);
        boolean rmAll = collection.removeAll(coll1);
        System.out.println("查看模版删除--是否成功= " + rmAll);
        System.out.println("coll1为模版的内容= " + coll1);
        System.out.println("以Coll1的内容为模版,在 Collection 删除与coll1相同内容的部分= " + collection);
    }

    
    @Test
    public void test3() {
        Collection collection = new ArrayList();
        collection.add("aa");
        collection.add("BB");
        collection.add(123);//自动装箱子
        collection.add(45);//自动装箱子
        collection.add(67);//自动装箱子
        collection.add(new Date());
        collection.add(new person("张三", 20));
        collection.add(new person("李四", 25));

        
        //10- 模版查询 -retainAll  --->  Collection 以 Coll1为模版,输出和Coll1(共有的内容)
        Collection coll1 = Arrays.asList(45, 67);
        collection.retainAll(coll1);
        System.out.println(collection);
    }

    
    @Test
    public void test4() {
        Collection collection = new ArrayList();
        collection.add("aa");
        collection.add("BB");
        collection.add(123);//自动装箱子
        collection.add(45);//自动装箱子
        collection.add(67);//自动装箱子
        //collection.add(new Date());
        collection.add(new person("张三", 20));
        collection.add(new person("李四", 25));

        Collection collection2 = new ArrayList();
        collection2.add("aa");
        collection2.add("BB");
        collection2.add(123);//自动装箱子
        collection2.add(45);//自动装箱子
        collection2.add(67);//自动装箱子
        //collection.add(new Date());
        collection2.add(new person("张三", 20));
        collection2.add(new person("李四", 25));

        
        //11-equal  比较两个集合的内容-是否相等
        System.out.println("比较两个集合的内容-是否相等=  " + collection.equals(collection2));

        
        //12- hashCode 哈希值
        System.out.println("collection的哈希值= " + collection.hashCode());

        System.out.println("-----------------------------------------");

        
        //13-toArray  集合 --> 数组
        Object[] arr = collection.toArray();
        for (int i = 0; i < arr.length; i++) {
            System.out.println("我是 集合 --> 数组 便利效果=  " + arr[i]);
        }

        System.out.println("-----------------------------------------");

        
        
        //14-asList 数组 --> 集合
        List<String> list = Arrays.asList(new String[]{"aa", "bb", "cc"});
        System.out.println("数组 --> 集合= " + list);
        //数组(要用包装类) --> 集合 ---的细节
        List<Integer> arr2 = Arrays.asList(new Integer[]{133, 435});
        System.out.println("数组 --> 集合(要用包装类)= " + arr2);

        
        //15- iterator();放回Iterator接口的实例,用于便利集合元素---在iteratorTest中
    }
}

续-15(iteratorTest的内容)

package _366After.src.javeTeacher.gather.learn_gather;


import org.testng.annotations.Test;

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


/*
iterator的迭代器
使用iterator接口便利集合元素

总结:
      便利集合--next、hasNest
 */
public class iterator_Test {
    public void test1() {
        Collection collection = new ArrayList();
        collection.add("aa");
        collection.add("BB");
        collection.add(123);//自动装箱子
        collection.add(45);//自动装箱子
        collection.add(67);//自动装箱子
        collection.add(new person("张三", 20));
        collection.add(new person("李四", 25));

        Iterator iterator = collection.iterator();
        //方式一、便利(不推荐)
        for (int i = 0; i < collection.size(); i++) {
            System.out.println(iterator.next());
        }

        //方式二、便利(推荐)
        //hasNext:判断是否还会有下一个元素
        while (iterator.hasNext()) {
            //next:1-指针下移  2-将下移以后集合位置上的元素放回
            System.out.println(iterator.next());
        }

    }

    
    @Test
    // ** 用iterator-便利集合时候---顺便删除数据
    public void test2() {
        Collection collection = new ArrayList();
        collection.add("aa");
        collection.add("BB");
        collection.add(123);//自动装箱子
        collection.add(45);//自动装箱子
        collection.add(67);//自动装箱子
        collection.add(new person("张三", 20));
        collection.add(new person("李四", 25));

        //删除集合中"BB"
        Iterator iterator = collection.iterator(); //- 第一次
        while (iterator.hasNext()) {
            Object obj = iterator.next(); //赋值给obj
            if ("BB".equals(obj)) {
                iterator.remove();
            }
        }

        //便利集合
        iterator = collection.iterator();//- 第二次
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }


    }
}

 

 

 

posted on 2022-06-08 18:00  陈嘻嘻-  阅读(95)  评论(0编辑  收藏  举报

导航