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<String> 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<String> coll = new ArrayList<>();
        coll.add("a");
        coll.add("b");
        coll.add("c");

        Iterator<String> 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<String> 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<String> 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<String, String> 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<String> strings = objectObjectHashMap.keySet();

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

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

 Set<Map.Entry<String, String>> entries = objectObjectHashMap.entrySet();
for (Map.Entry<String, String> s: entries) {
    System.out.println(s.getKey()+":"+s.getValue());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark 基础环境是指安装和配置 Spark 所需的软件和硬件环境。Spark 运行需要 Java 环境和 Hadoop 环境,同时也需要配置 Spark 的相关参数,如内存大小、CPU 核数等。在安装和配置好基础环境后,我们才能使用 Spark 进行数据处理和分析。 ### 回答2: Spark是一个快速、可扩展且容错的大数据处理框架,提供了丰富的API和工具,可以处理大规模的数据集。 搭建Spark基础环境包括以下几个步骤: 1. 安装JavaSpark是基于Java开发的,因此首先需要安装Java开发环境。可以从Oracle官网下载并安装适合操作系统的Java版本。 2. 下载Spark:在Apache Spark官网下载最新版本的Spark压缩包,并解压到指定目录。 3. 配置环境变量:将Spark的bin目录添加到系统的环境变量中。这样可以方便地在任意位置运行Spark的命令。 4. 配置Spark集群:如果需要在多台机器上运行Spark应用程序,需要进行集群配置。首先,在每台机器上安装好Java,并将Spark解压到相同的目录。然后,编辑Spark的配置文件,设置集群的主节点和从节点。 5. 验证安装:通过在终端运行spark-shell命令,验证Spark是否正确安装。spark-shell命令会启动一个Scala解释器,并连接到Spark集群。 6. 运行第一个Spark应用程序:编写一个简单的Spark应用程序,如WordCount,用于统计文本文件中单词的个数。将程序保存为Scala文件,并使用spark-submit命令来运行。 以上就是搭建Spark基础环境的主要步骤。搭建好Spark环境后,可以使用Spark提供的丰富API和工具来进行大数据处理和分析,如数据清洗、转换、机器学习等。Spark的功能强大且易于使用,适用于各种大规模数据处理场景。 ### 回答3: Spark是一个快速通用的集群计算系统,它提供了高效的数据处理和分析能力。要运行Spark,我们需要配置和搭建一些基础环境。 首先,我们需要安装Java JDK。Spark运行在Java虚拟机上,因此我们需要安装适当版本的Java开发工具包。通常建议使用Oracle JDK的最新稳定版本,然后设置JAVA_HOME环境变量。 其次,我们需要安装Spark本身。Spark官方网站提供了预编译的二进制发行版,我们可以从网站上下载并解压缩到我们喜欢的位置。然后,我们可以设置SPARK_HOME环境变量,以便在终端窗口中使用Spark命令。 接下来,我们需要选择一个合适的集群管理器来运行Spark应用程序,比如Standalone模式、Hadoop YARN和Apache Mesos等。我们需要根据自己的需求进行选择和配置。例如,在Standalone模式下,我们需要启动一个Spark Master和多个Spark Worker来管理和运行任务。 最后,在运行Spark应用程序之前,我们需要通过编写一个Spark应用程序来使用Spark的功能。Spark提供了Java、Scala和Python等多种编程语言的API。我们可以使用任何一种编程语言来编写应用程序并在Spark上运行。 总之,Spark基础环境搭建包括安装Java JDK、安装Spark本身、选择和配置集群管理器,以及编写Spark应用程序。搭建好这些基础环境后,我们就可以开始使用Spark进行快速、高效的集群计算了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值