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类

相关推荐
陌上花开࿈1 小时前
调用第三方接口
java
Aileen_0v01 小时前
【玩转OCR | 腾讯云智能结构化OCR在图像增强与发票识别中的应用实践】
android·java·人工智能·云计算·ocr·腾讯云·玩转腾讯云ocr
西猫雷婶2 小时前
python学opencv|读取图像(十九)使用cv2.rectangle()绘制矩形
开发语言·python·opencv
桂月二二3 小时前
Java与容器化:如何使用Docker和Kubernetes优化Java应用的部署
java·docker·kubernetes
liuxin334455663 小时前
学籍管理系统:实现教育管理现代化
java·开发语言·前端·数据库·安全
码农W3 小时前
QT--静态插件、动态插件
开发语言·qt
ke_wu3 小时前
结构型设计模式
开发语言·设计模式·组合模式·简单工厂模式·工厂方法模式·抽象工厂模式·装饰器模式
小马爱打代码3 小时前
设计模式详解(建造者模式)
java·设计模式·建造者模式
小奥超人3 小时前
Excel粘贴复制不完整的原因以及解决方法
windows·经验分享·microsoft·excel·办公技巧
code04号3 小时前
python脚本:批量提取excel数据
开发语言·python·excel