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类

相关推荐
_.Switch9 分钟前
Python 自动化运维持续优化与性能调优
运维·开发语言·python·缓存·自动化·运维开发
徐*红10 分钟前
java 线程池
java·开发语言
尚学教辅学习资料10 分钟前
基于SSM的养老院管理系统+LW示例参考
java·开发语言·java毕设·养老院
2401_8576363910 分钟前
计算机课程管理平台:Spring Boot与工程认证的结合
java·spring boot·后端
1 9 J12 分钟前
Java 上机实践4(类与对象)
java·开发语言·算法
Code apprenticeship13 分钟前
Java面试题(2)
java·开发语言
J不A秃V头A15 分钟前
Python爬虫:获取国家货币编码、货币名称
开发语言·爬虫·python
憨子周1 小时前
2M的带宽怎么怎么设置tcp滑动窗口以及连接池
java·网络·网络协议·tcp/ip
霖雨3 小时前
使用Visual Studio Code 快速新建Net项目
java·ide·windows·vscode·编辑器
SRY122404193 小时前
javaSE面试题
java·开发语言·面试