ArrayList
集合:一种容器,用来存储数据且集合的大小可变
ArrayList:是集合中最常见的一种,ArrayList是泛型类,可以约束存储的数据类型
ArrayList<Food> listFood = new ArrayList<Food>();
listFood 集合内存储的是堆内存中对象的地址
1.构造器:
public ArrayList() 创建一个空的集合对象
2.常用方法
增:
public boolean add(E e)
public void add(int index,E e)
删:
public E remove(int index)
public boolean remove(Object o)
改:
public E set(int index,E e)
查:
public E get(int index)
public int size()
pakage
在自己程序中调用其他报下的程序的注意事项
1.如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用)
2.如果当前程序中,要调用其他包下的程序,则必须再当前程序中导包,才可以访问。(导包格式:import 包名.类名)
3.如果当前程序中,要调用Java提供的程序粗,也需要先导包才可以使用;但是Java.lang包下的程序是不需要我们导包的,可以直接使用。
4.如果当前程序中,要调用多个包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。
String
String类创建对象封装数据有两种方式
方式一:直接使用双引号"..."
方式二:new String类,调用构造器初始化字符串对象
1.public String() 创建一个空白字符串对象,不含有任何内容
2.public String(char[] chars) 根据字符数组的内容,来创建字符串对象
3.public String(byte[] bytes) 根据字节数组的内容,来创建字符串对象
byte[] bytes = {97,98,99}; 97 -> a ,98 -> b ,99 -> c
String r = new String(bytes); r -> "abc"
System.out.println(r);
String提供的操作字符串数据的常用方法
1.public int length()
2.public char charAt(int index)
3.public char[] toCharArray()
4.public boolean equals(Object anObject)
5.public boolean equalsIgnoreCase(String anotherString)
6.public String substring(int beginIndex,int endIndex)
//从传入的索引处截取,得到新的字符串返回
7.public String substring(int beginIndex)
//使用新值,将字符串中的旧值替换,得到新的字符串
8.public String replace(charSequence target,charSequence replacement)
9.public boolean contains(charSequence s)
10.public boolean startWith(String prefix)
11.public String[] split(String regex)
String的注意事项
1.String的对象是不可变字符串对象
只要是以"..."方式写出的字符串对象,会在堆内存中的字符串常量池中存储。
每次试图改变字符串对象实际上是新产生了新的字符串对象,变量每次都是指向了新的字符串对象,之前的字符串对象
的内容确实是没有改变的,因此说String的对象是不可变的。
2.只要是"..."方式写出的字符串对象,会存储导字符串常量池,且相同内容的字符串只存储一份。 ->节约内存
但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。
3.字符串常量池位于堆区
4.Java存在编译优化机制,程序在编译时:"a"+"b"+"c"会直接转成"abc", 以提高程序的执行性能。
demo01
package com.item.huang.demo01;
import java.security.PublicKey;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 3 ; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入登录名:");
sc.hasNext();
String logicName = sc.next();
System.out.println("请输入密码:");
sc.hasNext();
String password = sc.next();
if (logic(logicName,password)){
System.out.println("恭喜登陆成功!");
break;
}else {
System.out.println("登录名或密码错误!");
}
}
}
public static boolean logic(String logicName,String passWord){
String rightLogicName = "huang";
String rightPassWord = "123456";
return rightLogicName.equals(logicName)&&rightPassWord.equals(passWord);
}
}
demo02
package com.item.huang.demo02;
import java.util.Random;
public class Test {
public static void main(String[] args) {
System.out.println(createCode(5));
System.out.println(createCode(10));
}
public static String createCode(int number){
String code = "";
String totalChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
for (int i = number; i > 0; i--) {
code += totalChars.charAt(random.nextInt(totalChars.length()));
}
return code;
}
}
arrayListDemo01
package com.item.huang.arraylistdemo01;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
System.out.println(list);
System.out.println("==================================================");
for (int i = 0; i < list.size(); i++) {
String r = list.get(i);
if (r.contains("枸杞")){
list.remove(i);
i--;
}
}
System.out.println(list);
}
}
arrayListDemo02
Food
package com.item.huang.arraylistdemo02;
public class Food {
private String name;
private double price;
private String info;
public Food() {
}
public Food(String name, double price, String info) {
this.name = name;
this.price = price;
this.info = info;
}
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 getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
FoodOperator
package com.item.huang.arraylistdemo02;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.SortedMap;
public class FoodOperator {
private ArrayList<Food> listFood = new ArrayList<Food>();
public void order(){
Scanner sc = new Scanner(System.in);
Food food = new Food();
System.out.println("请输入菜品名称:");
sc.hasNext();
food.setName(sc.next());
System.out.println("请输入菜品价格:");
sc.hasNextDouble();
food.setPrice(sc.nextDouble());
System.out.println("请输入菜品其他信息:");
sc.hasNext();
food.setInfo(sc.next());
System.out.println("------------------------------");
listFood.add(food);
}
public void look(){
if(listFood.size()==0){
System.out.println("没有上架任何菜品!!!");
System.out.println("--------------------------------");
}else {
for (int i = 0; i < listFood.size(); i++) {
System.out.println(listFood.get(i).getName());
System.out.println(listFood.get(i).getPrice());
System.out.println(listFood.get(i).getInfo());
System.out.println("---------------------------------");
}
}
}
public void start(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("你已进入菜单!!!");
System.out.println("输入 1 上架你的菜品");
System.out.println("输入 2 浏览你的菜品");
System.out.println("输入 3 退出菜单");
System.out.println("----------------------------------");
sc.hasNext();
String command = sc.next();
switch (command){
case "1":
order();
break;
case "2":
look();
break;
case "3":
return;
default:
System.out.println("输入的命令有问题!!!");
}
}
}
}
Test
package com.item.huang.arraylistdemo02;
public class Test {
public static void main(String[] args) {
FoodOperator foodOperator = new FoodOperator();
foodOperator.start();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?