Collection集合的学习

Collection集合常用的方法

    // boolean add(E e)  添加元素
    // boolean remove(Object o)   从集合中移除指定的元素
    // boolean removeif(Object o)   根据条件进行删除
    // void clear()    清空集合
    // boolean contains(Object o)  判断集合中是否存指定的元素
    // boolean isEmpty()   判断集合是否为空
    // int size()   集合的长度,也就是集合中元素的个数
package com.shengda.Demo14Collection;

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

public class MyCollectionDemo2 {
    public static void main(String[] args) {
        Collection<String> collection = new ArrayList<>();
        // boolean add(E e)  添加元素
        collection.add("aaa");
        collection.add("ss");
        collection.add("asa");
        // System.out.println(collection);

        // method1(collection); // 删除的

        // method2(collection); // 根据判断的条件的返回值进行 删除

        // method3(collection);  // 将集合中所有的元素删除

        // method4(collection);  // 根据条件返回

        // method5(collection);  // 判断集合是否为空

        // method6(collection); // 返回集合的长度
    }

    private static void method6(Collection<String> collection) {
        // int size()   集合的长度,也就是集合中元素的个数
        int size = collection.size();
        System.out.println(size);
    }

    private static void method5(Collection<String> collection) {
        // boolean isEmpty()   判断集合是否为空
        boolean result = collection.isEmpty();
        System.out.println(result);
    }

    private static void method4(Collection<String> collection) {
        // boolean contains(Object o)  判断集合中是否存指定的元素
        boolean result = collection.contains("a"); // false
        boolean result1 = collection.contains("aaa"); // true
        System.out.println(result);
        System.out.println(result1);
    }

    private static void method3(Collection<String> collection) {
        // void clear()    清空集合
        collection.clear();
        System.out.println(collection);
    }

    private static void method2(Collection<String> collection) {
        // boolean removeIf(Object o)   根据条件进行删除
        // removeIf底层会遍历集合,得到集合中的每一个元素
        // s依次表示集合的每一个元素
        // 就会把这每一个元素都到lambda表达式中去判断一下
        // 如果返回的是true,则删除
        // 如果返回的是false,则保留不删除
        collection.removeIf((String s)->{
            return s.length() == 3;  // 删除掉长度为3的字符
        });
        System.out.println(collection);
    }

    private static void method1(Collection<String> collection) {
        // boolean remove(Object o)   从集合中移除指定的元素
        boolean result1= collection.remove("aaa");  // true
        boolean result2 = collection.remove("sss");  // false
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(collection);
    }
}

Collection集合的遍历

Iterator:迭代器,集合的专用遍历方式

Iterator<E> iterator():返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引。
Iterator中的常用方法
boolean hasNext():判断当前位置是否有元素可以被取出。
E next():获取当前位置的元素
			将迭代器对象移向下一个索引位置
package com.shengda.Demo1Collection;

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

public class MyCollectionDemo3 {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");

        // 获取迭代器的对象
        // 迭代器对象一旦被创建出来,默认指向集合的0索引处
        Iterator<String> it = list.iterator();

        // 利用迭代器里面的方法进行遍历
        // System.out.println(it.hasNext());  // true  当前位置是否有元素可以被取出 开始是0索引
        // System.out.println(it.next());  // a 取出当前位置的元素+将迭代器往后移动一个索引的位置
        // System.out.println(it.next());  // b

        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

迭代器删除指定字符

package com.shengda.Demo1Collection;

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

public class MyCollectionDemo5 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("d");
        list.add("e");

        Iterator<String> it = list.iterator();

        while (it.hasNext()) {
            String s = it.next();
            if ("b".equals(s)){
                it.remove();
            }
        }
        System.out.println(list);
    }
}

增强for循环

增强for:简化数组和Collection集合的遍历
是JDK5之后出现的,其内部原理是一个Iterator迭代器
实现Iterable接口的类才可以使用迭代器和增强for

增强for的格式:

for(元素数据类型 变量名:数组或者Collection集合) {
	// 在此处使用变量即可,该变量就是元素
}
package com.shengda.Demo1Collection;

import java.util.ArrayList;

public class MyCollectionDemo6 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        list.add("g");

        // 数据类型一定是集合或者数组中的元素的类型
        // str仅仅是一个变量名而已,再循环的过程中,一次表示集合或者数组中的每一元素
        // list就是要遍历的集合或者数组
        for (String str : list) {
            System.out.println(str);
        }
    }
}

普通的for循环和迭代器和增强for循环的使用场景

如果需要操作索引,使用普通for循环
如果再遍历的过程中需要删除元素,请使用迭代器
如果仅仅想遍历,那么使用增强for
上一篇:读书笔记——安装


下一篇:在TensorFlow中怎么打印Tensor对象的值