Java大数据开发和安全开发
(一)Java的常用API:ArrayList集合
1.1 什么是集合?
- 集合是一种容器,用来装数据的,类似于数组。
1.2 有数组,为啥还学习集合?
- 数组定义完成并启动后,长度就固定了。
- 集合大小可变,开发中用的更多
1.3 ArrayList集合该怎么学呢?
-
1、会提供创建容器对象的方式
-
2、会提供相应的方法对容器进行操作
- 添加数据
- 删除某个数据
- 修改某个数据
- 获取某个数据
ArrayList集合学习的步骤:1、创建对象 2、增删改查的方法3、容器的其他特点
1.3.1 创建ArrayList对象
创建一个没有类型的ArrayList的集合对象
import java.util.ArrayList;
/**
目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法。
**/
public class ArrayListDemo {
public static void main(String[] args) {
//1、创建一个没有类型的ArrayList的集合对象
ArrayList list = new ArrayList();
list.add("黑马");
list.add(666);
list.add(99.5);
list.add("黑马");
list.add("Java");
System.out.println(list);
}
}
创建一个指定类型的ArrayList的集合对象,两种写法:
第一种:
ArrayList<String> list = new ArrayList<String>();
第二种:
ArrayList<String> list = new ArrayList<>();
import java.util.ArrayList;
/**
目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法。
**/
public class ArrayListDemo {
public static void main(String[] args) {
//1、创建一个指定类型的ArrayList的集合对象//
// 第一种写法:ArrayList<String> list = new ArrayList<String>();
// 从jdk 1.7开始才支持的
//第二种写法:ArrayList<String> list = new ArrayList<>();
ArrayList<String> list = new ArrayList<>();
list.add("黑马");
list.add("黑马");
list.add("Java");
System.out.println(list);
1.3.ArrayList的增删改查操作
import java.util.ArrayList;
/**
目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法。
**/
public class ArrayListDemo {
public static void main(String[] args) {
//1、创建一个指定类型的ArrayList的集合对象//
// 第一种写法:ArrayList<String> list = new ArrayList<String>();
// 从jdk 1.7开始才支持的
//第二种写法:ArrayList<String> list = new ArrayList<>();
ArrayList<String> list = new ArrayList<>();
list.add("黑马");
list.add("黑马");
list.add("Java");
System.out.println(list);
//2、往集合中的某个索引位置处添加一个数据
list.add(1,"MysQL");
System.out.println(list);
//3、根据索引获取集合中某个索引位置处的值
String rs = list.get(1);
System.out.println(rs);
// 4、获取集合的大小(返回集合中存储的元素个数)
System.out.println(list.size());
// 5、根据索引删除集合中的某个元素值,会返回被删除的元素值给我们
System.out.println(list.remove(1));
System.out.println(list);
//6、直接删除某个元素值,删除成功会返回true,反之
System.out.println(list.remove( "Java"));
System.out.println(list);
list.add( 1, "html");
System.out.println(list);
// 默认删除的是第一次出现的这个黑马的数据的
System.out.println(list.remove( "黑马"));
System.out.println(list);
// 7、修改某个索引位置处的数据,修改后会返回原来的值给我们
System.out.println(list.set(1,"黑马程序员"));
System.out.println(list);
}
}
1.3.3 ArrayList集合的案例
- 批量删除含有枸杞的产品
import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1、创建一个ArrayList集合对象
ArrayList<String> list = new ArrayList<>();list.add("Java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
System.out.println(list);
// 2、开始完成需求:从集合中找出包含枸杞的数据并删除它
for(int i=0;i<list.size();i++) {
// i = 0 1 2 3 4 5
// 取出当前遍历到的数据
String ele = list.get(i);
// 判断这个数据中包含枸杞
if (ele.contains("枸杞")) {
// 直接从集合中删除该数据
list.remove(ele);
}
}
System.out.println(list);
}
}
[Java入门, 宁夏枸杞, 黑枸杞, 人字拖, 特级枸杞, 枸杞子]
[Java入门, 黑枸杞, 人字拖, 枸杞子]
以上代码未能全部删除含有枸杞的产品
全部删除的方法1:
import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1、创建一个ArrayList集合对象
ArrayList<String> list = new ArrayList<>();list.add("Java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
System.out.println(list);
// 2、开始完成需求:从集合中找出包含枸杞的数据并删除它
for(int i=0;i<list.size();i++) {
// i = 0 1 2 3 4 5
// 取出当前遍历到的数据
String ele = list.get(i);
// 判断这个数据中包含枸杞
if (ele.contains("枸杞")) {
// 直接从集合中删除该数据
list.remove(ele);
i--;
}
}
System.out.println(list);
}
}
全部删除的方法2:
import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1、创建一个ArrayList集合对象
ArrayList<String> list = new ArrayList<>();list.add("Java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
System.out.println(list);
// 2、// 方式二:从集合的后面倒着遍历并删除
for(int i = list.size()-1;i >= 0; i--) {
// i = 0 1 2 3 4 5
// 取出当前遍历到的数据
String ele = list.get(i);
// 判断这个数据中包含枸杞
if (ele.contains("枸杞")) {
// 直接从集合中删除该数据
list.remove(ele);
}
}
System.out.println(list);
}
}
ArrayList的综合案例-模仿外卖系统中的商家系统
- 完成菜品的上架、以及菜品信息浏览功能
实现这个程序的首先创建实体类用来保存数据
- Food.java
- 这里保存创建菜单所需要的变量,但属性都是私有的,不允许别人访问修改
package com.qianxin.arraylist.xiangmu;
public class Food {
private String name;
private double price;
private String desc;
public Food() {
}
public Food(String name, double price, String desc) {
this.name = name;
this.price = price;
this.desc = desc;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
在创建操作类,用来展示操作界面和实现新增和展示菜品功能
- FoodOperator.java
package com.qianxin.arraylist.xiangmu;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Scanner;
public class FoodOperator {
// 1、定义一个ArrayLst集合对象,负责存储菜品对象信息
private ArrayList<Food> foodlist= new ArrayList<>();
public void addFood(){
Food f= new Food();
Scanner sc = new Scanner(System.in);
System.out.println("请您输入该菜品的名字:");
String name = sc.next();
f.setName(name);
System.out.println("请输入菜品的价格:");
double price = sc.nextDouble();
f.setPrice(price);
System.out.println("请输入菜品的描述:");
String desc = sc.next();
f.setDesc(desc);
foodlist.add(f);
System.out.println("上架成功");
}
public void showAllFood(){
for (int i = 0; i < foodlist.size(); i++) {
Food f = foodlist.get(i);
System.out.println(f.getName());
System.out.println(f.getPrice());
System.out.println(f.getDesc());
System.out.println("------------------------------------------");
}
}
public void start(){
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的选择:1.添加菜品 2.展示菜品 3.退出");
String command = sc.next();
switch (command){
case "1":
addFood();
break;
case "2":
showAllFood();
break;
case "3":
System.out.println("欢迎下次再来");
return;
default:
System.out.println("您输入的不合法!");
}
}
}
}
最后创建主程序进行调用
ArrayTest1.java
package com.qianxin.arraylist.xiangmu;
public class ArrayTest1 {
public static void main(String[] args) {
FoodOperator operator = new FoodOperator();
operator.start();
}
}