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类

相关推荐
ademen4 分钟前
spring第9课,spring对DAO的支持
java·数据库·spring
小鱼人爱编程13 分钟前
Java基石--动态代理让你无中生有
java·后端·架构
lpfasd12315 分钟前
01_Go语言基础与环境搭建
开发语言·后端·golang
天天进步201519 分钟前
Python实战--基于Django的企业资源管理系统
开发语言·python·django
草莓熊Lotso21 分钟前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day8
c语言·开发语言·c++·刷题·强化训练
倒悬于世26 分钟前
JVM-类加载详情
java·开发语言·jvm
xiezhr28 分钟前
别再被VO、BO、PO、DTO、DO绕晕!今天用一段代码把它们讲透
java·后端·spring
zwhdlb40 分钟前
Java + 工业物联网 / 智慧楼宇 面试问答模板
java·物联网·面试
刘一说1 小时前
CentOS 系统 Java 开发测试环境搭建手册
java·linux·运维·服务器·centos