任务描述
本关任务:创建任意集合并往集合中添加元素。
相关知识
为了完成本关任务你需要知道:
1.集合是什么;
2.为什么使用集合;
3.怎么创建集合;
4.如何向集合中添加数据。
集合是什么
JAVA 中的集合:是一个工具类,就像是容器,存储任意数量具有共同属性的集合。
![](https://i-blog.csdnimg.cn/blog_migrate/5df54d8a3ec6dd909a6b37af2943e3a5.png)
图1 集合
例如:购物车是商品的集合,军队是军人的集合。
集合与数组的区别
我们已经知道集合就是能存储大量数据的一个容器,但是咱们在 JAVA 入门的时候学过数组,数组也是一个能存储大量数据的容器,好像也可以满足日常开发的需求,那我们为什么要使用集合呢?
![](https://i-blog.csdnimg.cn/blog_migrate/7ac4b16aed4ce3a6934167b3c3aa633d.png)
图2 数组与集合的区别
如果说之前学习的数组是一根打狗棒的话,那我们将要学习的集合就可以看做是一根如意金箍棒了(集合长度可变,数组长度不可变)。
集合和数组有如下区别:
数组的长度固定,集合的长度可变;
数组只能通过索引访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象。
Collection接口
Java 中的集合分为两大家族,一个是 Collection 家族,一个是 Map 家族,其中 Collection 家族有三大成员:List、Queue 和 Set,这三大成员有四个常用子类(如下图 3 所示):ArrayList、LinkedList、HashSet、SortedSet。这个家族有一个特点,即集合中的元素都是单个存在的。
![](https://i-blog.csdnimg.cn/blog_migrate/4ade8d948104979181ae263b697ccafa.png)
图3 Collection接口
怎么创建集合
我们以 Arraylist 为例,创建一个存储字符串的集合:
1.导包
import java.util.ArrayList;
2.创建集合
import java.util.ArrayList; // 导包
public class CollTest {
public static void main(String[] args) {
// 创建一个存储字符串的ArrayList集合
ArrayList list = new ArrayList<String>();
}
}
向集合中添加数据
使用集合对象调用 add() 方法即可。
import java.util.ArrayList; // 导包
public class CollTest {
public static void main(String[] args) {
// 创建一个存储字符串的ArrayList集合
ArrayList list = new ArrayList<String>();
// 向集合中添加元素
list.add("hello");
list.add(2018);
// 打印集合
System.out.print(list);
}
}
执行结果:
[hello, 2018]
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,创建任意集合并往集合中添加元素,具体要求如下:
接收给定的一行字符串(如:kiko kill s);
通过空格(一个)切割字符串;
创建任意一种类型的集合;
将切割后的字符串元素添加进集合;
打印集合元素。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
例:测试输入:
kiko kill s
预期输出:
[kiko,kill,s]
代码实现
方法一
/*
* 任务:接收给定的一行字符串,实现如下需求:
1.通过空格(一个)切割字符串;
2.创建任意一种类型的集合;
3.将切割后的字符串元素添加进集合;
4.打印集合。
* */
import java.util.*;
import java.util.*;
public class CollTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:接收给定的一行字符串
Scanner scanner = new Scanner(System.in);
// 第二步:切割字符串
String str = scanner.nextLine();
String[] strArray = str.split("\\s+");
// 第三步:创建集合
ArrayList<String> strList = new ArrayList();
// 第四步:往集合中添加元素
for (int i = 0; i < strArray.length; i++) {
strList.add(strArray[i]);
}
//第五步:打印集合元素
System.out.print(strList);
/********** End **********/
}
}
方法二
package atguigu.com.java;/*
* 任务:接收给定的一行字符串,实现如下需求:
1.通过空格(一个)切割字符串;
2.创建任意一种类型的集合;
3.将切割后的字符串元素添加进集合;
4.打印集合。
* */
import java.util.Arrays;
import java.util.Collection;
import java.util.Scanner;
public class CollTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:接收给定的一行字符串
Scanner scanner = new Scanner(System.in);
// 第二步:切割字符串
String str = scanner.nextLine();
String[] strArray = str.split("\\s+");
// 第三步:创建集合
Collection coll = Arrays.asList(strArray);
System.out.println(coll);
// 第四步:往集合中添加元素
// for (int i = 0; i < strArray.length; i++) {
// strList.add(strArray[i]);
// }
// //第五步:打印集合元素
// System.out.print(strList);
// /********** End **********/
}
}
知识点
键盘输入字符串及接收
利用split()函数进行分割字符串
集合的创建及遍历打印
Arrays.asList():将数组转化为集合 其中使用时有很多注意点(返回类型为List或者Collection)