栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark-Java Day 20

Spark-Java Day 20

1 集合(集合是java中提供的一种容器,可以用来存储多个数据)
1.1 集合体系结构
a 集合主要分为两大系列:Collection和Map,Collection表示一组对象,Map表示一组映射关系或键值对
b Collection根接口 子接口 List Set Queue …

public class TestCollection {
    public static void main(String[] args) {
        Collection objects = new ArrayList<>();
        objects.add("aa");
        objects.add("bb");
        System.out.println("objects = " + objects);
        System.out.println("objects.size() = " + objects.size());
        System.out.println("objects.contains("aa") = " + objects.contains("aa"));
        System.out.println("objects.toArray() = " + objects.toArray());
        System.out.println("objects.remove("aa") = " + objects.remove("aa"));
        System.out.println("objects.size() = " + objects.size());
        objects.clear();
        System.out.println("objects.isEmpty() = " + objects.isEmpty());

        Collection objects1 = new ArrayList();
        objects1.add(1);
        objects1.add(1);
        objects1.add(1);

        objects.addAll(objects1);
        System.out.println(objects);
    }
}

1.2 Iterator迭代器
(1) 作用:遍历集合中所有元素
(2) 作用:并不是所有的集合都能使用Iterator迭代器,前提条件是Iterator的接口子接口(如Map就无法使用)

public class TestIter {
    public static void main(String[] args) {
        Collection coll = new ArrayList<>();
        coll.add("a");
        coll.add("b");
        coll.add("c");

        Iterator iterator = coll.iterator();

        while (iterator.hasNext()){
            System.out.println("iterator.next() = " + iterator.next());
        }
    }
}

(3) 不要在使用Iterator迭代器进行迭代时,调用Collection的remove(XX)方法,否则会报异常或者出现不确定行为
1.3 增强for循环
(1)迭代器代码进行简化编写,在JDK1.5开始提供简写方式,成为增强for循环,底层是迭代器
(2)语法:
for(元素类型 名称 : 要遍历的集合或数组){
}

for(String item: arrays){

}

2 List接口
(1)List接口特点。
a List接口是Collection接口的子接口。
b List存储是有序的,可以有重复元素。
c List接口有很多实现类,List底层结构可以是数组、链表。
(2) List常用方法。

public class TestList {
    public static void main(String[] args) {
        List l =new ArrayList<>();
        l.add("a");
        l.add("b");
        l.add("c");
        for (int i = 0; i < l.size(); i++) {
            System.out.println("l.get(i) = " + l.get(i));
        }
        for (String s : l){
            System.out.println("s = " + s);
        }

        l.remove("a");
        System.out.println("l.size() = " + l.size());
        l.set(0, "f");
        for (String s : l){
            System.out.println("s = " + s);
        }

    }
}

(3)List实现类(ArrayList(),Vector(),linkedList())
ArrayList:
-数据存储结构是数组结构,元素增删慢,查找快
创建List集合,有三部分:Object数组,size,modCount
Object数组默认大小是0
向集合添加数据(长度为10–任意),Object数组大小变成10
向数组中添加数据超过了10,进行扩容,1.5倍
Vector:
语法:List l =new Vector<>();
数据存储结构与ArrayList相同,都是数组,解决线程安全问题
Vector方法上添加synchronized
Vector扩容是2倍大小
a 创建 vector对象时,有四部分,
Obejct数组初始值是10,elementCount(元素个数)、capacityIncrement,默认是0,modCount版本默认是0
linkedList:
语法:List l =new linkedList<>();
数据存储结构:链表(双向)
创建linkedListd对象,包含四部分,size元素数量,first,last,modcount
添加元素的时候,第一次添加元素的时候作为首节点和尾节点。
再次添加时在首节点下一个节点添加一个节点,并指向上一个节点。
3 Set接口
a Collection子接口
b Set接口不能重复,无序
c Set遍历可以使用迭代器,增强for循环,常用实现类有HashSet、TreeSet、linkedHashSet.
d HashSet底层是HashMap,linkedHashSet是HashSet子类。TreeSet底层是TreeMap,使用红黑树
e HashSet底层是HashMap,向Set集合添加数据,会成为map集合中key值

public class TestSet {
    public static void main(String[] args) {
        Set objects = new HashSet<>();

        objects.add("aaa");
        objects.add("aaa");
        objects.add("aaa");
        objects.add("bb");

        for (String value:objects) {
            System.out.println("value = " + value);
        }
    }
}
  • 补充内容
    使用linkedList实现栈(先进后出)和队列(先进先出)操作
    3.1 ListIterator是Iterator的子接口,遍历List集合。向前遍历
    4 Map集合
    Map中不能包含重复的键,值可以重复,每个键只能对应一个值
    4.1 常用方法
    a 添加方法 put(K key, V value)
    b 根据key获取对应的value值 get(key)
    c 移除 remove(key)
    d 返回map集合所有key Set keySet()
    e 返回map集合所有value值 Collection values()
    f 清空map集合 clear()
public class TestMap {
    public static void main(String[] args) {
        Map objectObjectHashMap = new HashMap<>();


        objectObjectHashMap.put("12","张三");
        objectObjectHashMap.put("13","张5");
        objectObjectHashMap.put("14","张4");
        objectObjectHashMap.put("15","张");

        System.out.println("objectObjectHashMap.get("15") = " + objectObjectHashMap.get("15"));
        System.out.println("objectObjectHashMap.keySet() = " + objectObjectHashMap.keySet());
        System.out.println("objectObjectHashMap.values() = " + objectObjectHashMap.values());
        System.out.println("objectObjectHashMap.remove("14") = " + objectObjectHashMap.remove("14"));
        System.out.println("objectObjectHashMap = " + objectObjectHashMap);
        objectObjectHashMap.clear();
        System.out.println("objectObjectHashMap = " + objectObjectHashMap);
    }
}

4.2 集合遍历
第一种:获取map中所有key,根据key获取vaule值

Set strings = objectObjectHashMap.keySet();

for (String ss:strings) {
    String va = objectObjectHashMap.get(ss);
    System.out.println(ss+":"+va);
}

第二种:直接获取map里面的key-value关系,获取key和value

 Set> entries = objectObjectHashMap.entrySet();
for (Map.Entry s: entries) {
    System.out.println(s.getKey()+":"+s.getValue());
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602312.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号