Java Collection集合方法

简介: 一、简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; /** * 集合的由来: * 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。
  • 一、简单方法

package cn.itcast.day15;

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

/**
 * 集合的由来:
 *             我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。
 *             而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器内的对象,在我们目前所学的知识里面,有哪些是容器类型的呢?
 *             数组和StringBuffer。但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组。
 *             而对象数组又不能适应变化的需求,因为数组的长度是固定的,这个时候,为了适应变化的需求,Java就提供了集合类型供我们使用。
 * 
 * 数组和集合的区别:
 *         A:长度区别
 *             数组的长度固定
 *         B:内容不同
 *             数组存储的是一种类型的元素
 *             而集合中存储不同类型的元素
 *        C:元素的数据类型不同 
 *            数组可以存储基本类型,也可以存储引用类型
 *            集合只能存储引用类型
 *
 *    刚说过集合是存储多个元素的,但是呢,存储多个元素我们也是有不同需求的:比如说,我要这多个元素中不能有相同的元素。
 *    再比如说,我要这多个元素按照某种规则排序一下。针对不同的需求,Java就提供了不同的集合类,这样呢,Java就提供了很多个集合类。
 *    这多个集合类的数据结构不同,结构不同不重要,重要的是你要能够存储东西,并且还要能够使用这些东西,比如说判断、获取等。
 *    既然这样,那么,这多个集合类是有共性的内容的,我们把这些集合类的共性内容不断的向上抽取,最终就能形成集合的继承体系结构。
 *
 *    数据结构:数据的存储方式。
 *
 *    Collection: 世界欧股的顶级接口,它的子体系有重复的,有唯一的,有有序的,有无序的。(后面慢慢讲到)
 *    
 *    Collection的功能概述:
 *    1: 添加功能
 *         boolean add(E e):向集合中添加一个元素
 *         boolean addAll(Collection<? extends E> c):向集合中添加一个集合
 *    2: 删除功能
 *        void clear():移除掉集合中所有的元素
 *        boolean remove(Object o)删除集合中某一个元素  
 *        boolean removeAll(Collection<?> c):移除集合中指定的集合元素 
 *    3: 判断功能
 *        boolean contains(Object o):判断集合中是否包含指定元素
 *        boolean containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素
 *        boolean isEmpty():判断集合是否为空    
 *    4: 获取功能
 *        Iterator<E> iterator():返回迭代集合时的迭代器(重点)
 *    5: 长度功能
 *        int size():集合的长度
 *    6: 交集功能
 *        boolean retainAll(Collection<?> c):两个集合都有的元素
 *    7:转换功能
 *         Object[] toArray():将集合转换成Object对象数组---和Arrays  static <T> List<T>  asList(T... a) 相对应
 *        
 */


public class CollectionDemo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            //boolean add(E e):向集合中添加一个元素
            c.add("abc1");
            c.add("abc2");
            c.add("abc3");
            c.add("abc4");
            
            //void clear():移除掉集合中所有的元素
            //c.clear();
            
            //boolean remove(Object o)删除集合中某一个元素  
            //c.remove("abc5");
            
            //boolean contains(Object o):判断集合中是否包含指定元素
//            System.out.println(c.contains("123"));//flase
//            System.out.println(c.contains("abc2"));//true
            
            //boolean isEmpty():判断集合是否为空 
            //System.out.println("isEmpty: "+c.isEmpty());
            
            //int size():集合的长度
//            System.out.println("size(): "+c.size());//4
//            c.remove("abc1");
//            System.out.println("size(): "+c.size());//3
            
            Object[] objs=c.toArray();
            for(int i=0;i<objs.length;i++){
                Object obj=objs[i];
                System.out.println(obj);
            }
            
            c=Arrays.asList(objs);
            System.out.println("c:"+c);
            
        }
}
  • 二、高级方法

package cn.itcast.day15;

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

/**
 * 
 * 
 * Collection集合的高级功能测试
 * xxAll方法测试
 * boolean addAll(Collection<? extends E> c):向集合中添加一个集合
 * boolean removeAll(Collection<?> c):移除集合中指定的集合元素 
 * boolean containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素
 * boolean retainAll(Collection<?> c):两个集合都有的元素  返回:如果此 collection 由于调用而发生更改,则返回 true 

 */
public class CollectionDemo2 {
    public static void main(String[] args) {
        Collection c1 = new ArrayList();
        c1.add("abc1");
        c1.add("abc2");
        c1.add("abc3");
        c1.add("abc4");

        
        Collection c2 = new ArrayList();
        c2.add("abc1");
        c2.add("abc2");
        c2.add("abc3");
        c2.add("abc4");
        c2.add("abc5");
        c2.add("abc6");
        c2.add("abc7");
        

//        c1.addAll(c2);
        
        //System.out.println(c1.removeAll(c2));
        
//        System.out.println(c1.containsAll(c2));
//        System.out.println(c1.retainAll(c2));
        
        System.out.println(c1);
        System.out.println(c2);
    } 
}

开始做,坚持做,重复做
相关文章
|
1月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
193 100
|
1月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
215 101
|
1月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
9天前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
123 18
|
18天前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
50 7
|
17天前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
135 4
|
26天前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
82 11
|
22天前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
167 5
|
1月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
1月前
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。