java常用类库 -cnblog

java常用类库 集合类

1 迭代器遍历集合 Collection接口

Collection是List和Set的父类

制作一个案例

c++ 复制代码
package nb;

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

public class Mus {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("11");
        list.add("22");
        Iterator<String > it = list.iterator();
        while (it.hasNext()){
            String str = (String) it.next();
            System.out.println(str);
        }
    }
}

2 list接口

list接口在Collection接口之上单独定义了两个重要的方法

get(int index) 获取指定索引位置元素

set(int index,Object obj) 将集合中指定索引位置的对象修改为指定的对象

ArrayList 实现了可变的数组,允许保存所有的元素,包括null,也可以根基索引位置对集合进行快速的随机访问.缺点是向指定索引位置插入对象或从指定的索引位置删除对象的速度较慢

LinkedList 类采用链表结构保存对象,这种结构的优点是便于向集合中插入对象或从集合中删除对象;但是对应随机访问集合中的对象使用LinkList

类实现List集合的效率较低

3 foreach和forEach遍历集合的元素

c++ 复制代码
package nb;

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

public class Mus {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("11");
        list.add("22");
        for (String a:list){
            System.out.println(a);
        }
    }
}
c++ 复制代码
package nb;

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

public class Mus {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("11");
        list.add("22");
        list.forEach(e-> System.out.println(e));
    }
}

4 使用Predicate操作集合

removelf对集合里指定条件的元素进行批量删除,举例说明

把元素长度大于2的元素删除

c++ 复制代码
package nb;

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

public class Mus {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();
        list.add("11");
        list.add("223");
        list.add("22");
        list.removeIf(e ->e.length()>2);
        System.out.println(list);
    }
}

Predicate筛选集合内元素是否包含指定条件

c++ 复制代码
package nb;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Objects;
import java.util.function.Predicate;

public class Mus {
    public static void main(String[] args) {
        Collection ct = new ArrayList<>();
        ct.add("11");
        ct.add("22");
        ct.add("333");
        System.out.println(calNum(ct,e -> ((String)e).contains("1")));
    }
    public static int calNum(Collection ct, Predicate pc){
        int number = 0;
        for (Object obj:ct){
            if (pc.test(obj)){
                number++;
            }
        }
        return number;
    }
}

5 set接口概述

5.1 hashset

c++ 复制代码
package nb;


import java.util.HashSet;
import java.util.Set;

public class Mus {
    public static void main(String[] args) {
        Set<String> set = new HashSet<String>();
        String a1 = new String("你哈");
        String a2 = new String("哈哈");
        set.add(a2);
        set.add(a1);
        for (String ste:set){
            System.out.println(ste);
        }
    }
}

5.2 treeset类似、

6 map接口

map接口与set接近但又有所不同,map接口会同时传入键和值

map分为HashMap类和TreeMap类

写一个HashMap案例,分别输出HashMap的键和值

c++ 复制代码
package nb;


import java.util.*;

public class Mus {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("11","22");
        map.put("33","44");
        Set<String> set = map.keySet();
        Iterator<String> it = set.iterator();
        while (it.hasNext()){
            System.out.println(it.next()+" ");
        }

        Collection<String> coll = map.values();
        it = coll.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}

遍历map还有两种方法entrySet和foreach循环

7 Properties类和Collections类

相关推荐
呉師傅6 分钟前
关于联想ThinkCentre M950t-N000 M大师电脑恢复预装系统镜像遇到的一点问题
运维·网络·windows·电脑
feiyangqingyun9 分钟前
Qt项目作品在苹果macos上编译运行效果/视频监控系统/物联网平台等
开发语言·qt·macos
GL-Yang40 分钟前
2025年-集合类面试题
java·面试
你不是我我41 分钟前
【Java 开发日记】我们来说一说 Redisson 的原理
java·开发语言
kk”42 分钟前
C++ stack 和 queue
开发语言·c++
Matlab仿真实验室1 小时前
基于Matlab实现双目图计算深度图
开发语言·数码相机·matlab·双目图计算深度图
李憨憨1 小时前
Java处理大型 Excel 文件(超过 100 万行)难题
java
QT 小鲜肉1 小时前
【数据结构与算法基础】05. 栈详解(C++ 实战)
开发语言·数据结构·c++·笔记·学习·算法·学习方法
老K的Java兵器库1 小时前
Collections 工具类 15 个常用方法源码:sort、binarySearch、reverse、shuffle、unmodifiableXxx
java·开发语言·哈希算法
武子康1 小时前
Java-153 深入浅出 MongoDB 全面的适用场景分析与选型指南 场景应用指南
java·开发语言·数据库·mongodb·性能优化·系统架构·nosql