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 小时前
react中用css加载背景图的2种情况
开发语言·前端·javascript
有一个好名字1 小时前
设计模式-工厂方法模式
java·设计模式·工厂方法模式
篱笆院的狗1 小时前
Java 中线程之间如何进行通信?
java·开发语言
坐吃山猪1 小时前
Python命令行工具argparse
开发语言·python
lsx2024061 小时前
jQuery 密码验证
开发语言
创作者mateo1 小时前
python进阶之文件处理
开发语言·python
葱白有滋味1 小时前
Session、Token 和 JWT 的区别对比
java
星月心城1 小时前
八股文-JavaScript(第一天)
开发语言·前端·javascript
Thomas_YXQ1 小时前
Unity3D的委托和事件的用法详解
java·开发语言
zwxu_1 小时前
thread堆栈分析报告
java·微服务·消息队列·熔断