花几千上万学习Java,真没必要!(三十一)

集合:

1、数组的特性:

2、ArrayList(动态数组):

测试代码1:

package listtest.com;
import java.util.ArrayList;  
import java.util.List;  public class HashCodesArrayList {  public static void main(String[] args) {  // 创建一个ArrayList并添加一些元素  List<String> list = new ArrayList<>();  list.add("Apple");  list.add("Banana");  list.add("Cherry");  // 遍历ArrayList并打印每个元素的哈希码和值  for (String item : list) {  // 打印哈希码和值  System.out.println("Hash Code: " + item.hashCode() + ", Value: " + item);  }  }  
}

运行结果如下:

测试代码2:

package listtest.com;
import java.util.ArrayList;  
import java.util.List;  public class ArrayListDemo {  public static void main(String[] args) {  // 创建ArrayList实例  List<Integer> numbers = new ArrayList<>();  // 添加元素到ArrayList中  // 随着元素的添加,ArrayList可能会自动扩容 for (int i = 0; i < 10; i++) {  numbers.add(i);  }  // 查询操作:通过索引访问元素,非常快  System.out.println("The element at index 5 is: " + numbers.get(5)); // 输出: The element at index 5 is: 5  // 插入操作:在列表中间插入元素,需要移动其他元素,相对较慢  long startTime = System.currentTimeMillis();  numbers.add(5, 100); // 在索引5的位置插入元素100  long endTime = System.currentTimeMillis();  System.out.println("Insertion time: " + (endTime - startTime) + " ms");  // 输出插入后的列表  System.out.println("After insertion: " + numbers);  // 删除操作:删除列表中的元素,同样需要移动其他元素,相对较慢  startTime = System.currentTimeMillis();  numbers.remove(5); // 删除索引5的元素(现在是100)  endTime = System.currentTimeMillis();  System.out.println("Deletion time: " + (endTime - startTime) + " ms"); // 输出删除后的列表  System.out.println("After deletion: " + numbers);  }  
}

运行结果如下:

测试代码3:

package listtest.com;
import java.util.ArrayList;  
import java.util.List;  
import java.util.Scanner;  public class ArrayListExample {  // 一个水果列表  private List<String> fruits = new ArrayList<>();  // 添加元素  public void addFruit(String fruit) {  fruits.add(fruit);  }  // 删除元素(通过索引)  public void removeFruit(int index) {  if (index >= 0 && index < fruits.size()) {  fruits.remove(index);  } else {  System.out.println("索引无效,无法删除元素。");  }  }  // 修改元素(通过索引)  public void updateFruit(int index, String newFruit) {  if (index >= 0 && index < fruits.size()) {  fruits.set(index, newFruit);  } else {  System.out.println("索引无效,无法更新元素。");  }  }  // 查找元素(通过索引并返回)  public String findFruit(int index) {  if (index >= 0 && index < fruits.size()) {  return fruits.get(index);  } else {  return "索引无效,未找到元素。";  }  }  // 打印所有元素  public void printFruits() {  if (fruits.isEmpty()) {  System.out.println("列表为空。");  } else {  System.out.println("列表中的水果:");  for (String fruit : fruits) {  System.out.println(fruit);  }  }  }  // 主方法public static void main(String[] args) {  ArrayListExample example = new ArrayListExample();  // 添加元素  example.addFruit("苹果");  example.addFruit("香蕉");  example.addFruit("橙子");  // 打印所有元素  example.printFruits();  // 删除元素  example.removeFruit(1); // 删除索引为1的元素(香蕉)  // 再次打印所有元素  example.printFruits();  // 修改元素  example.updateFruit(0, "草莓"); // 索引为0的元素(苹果)更改为草莓  // 再次打印所有元素  example.printFruits();  // 查找元素  System.out.println("索引0的水果是: " + example.findFruit(0));  // 控制台交互Scanner scanner = new Scanner(System.in);  System.out.println("请输入要查找的水果索引(输入-1退出):");  while (true) {  int index = Integer.parseInt(scanner.nextLine());  if (index == -1) {  break;  }  System.out.println("索引" + index + "的水果是: " + example.findFruit(index));  }  scanner.close();  }  
}

运行结果如下:

测试代码4:

package listtest.com;
import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.Scanner;  //用三种方式遍历ArrayList
public class ArrayListTest {  public static void main(String[] args) {  ArrayList<String> list = new ArrayList<>();  Scanner scanner = new Scanner(System.in);  // 获取输入的元素数量  System.out.print("请输入要添加的元素数量: ");  int count = scanner.nextInt();  scanner.nextLine(); // 消耗掉nextInt()后的换行符  // 循环读取输入的元素并添加到列表中  for (int i = 0; i < count; i++) {  System.out.print("请输入第 " + (i + 1) + " 个元素: ");  String element = scanner.nextLine();  list.add(element);  }  // 关闭scanner  scanner.close();  // 使用for循环遍历(基于索引)  System.out.println("\n遍历方式1(基于索引的for循环):");  for (int i = 0; i < list.size(); i++) {  System.out.println(list.get(i));  }  // 使用增强型for循环遍历(for-each循环)  System.out.println("\n遍历方式2(增强型for循环):");  for (String item : list) {  System.out.println(item);  }  // 使用Iterator遍历  System.out.println("\n遍历方式3(使用Iterator):");  Iterator<String> iterator = list.iterator();  while (iterator.hasNext()) {  String item = iterator.next();  System.out.println(item);  }  }  
}

运行结果如下:

测试代码5:

创建一个图书类:

package listtest.com;
public class Book {  private String title;  private String author;  public String isbn;  public Book(String title, String author, String isbn) {  this.title = title;  this.author = author;  this.isbn = isbn;  }  public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getIsbn() {return isbn;}public void setIsbn(String isbn) {this.isbn = isbn;}@Override  public String toString() {  return "Book{" +  "title='" + title + '\'' +  ", author='" + author + '\'' +  ", isbn='" + isbn + '\'' +  '}';  }  
}

创建一个图书馆类:

package listtest.com;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;  public class LibrarySystem {  private List<Book> books;  public LibrarySystem() {  this.books = new ArrayList<>();  }  // 添加图书  public void addBook(Book book) {  books.add(book);  }  public boolean removeBook(String isbn) {  Iterator<Book> iterator = books.iterator();  while (iterator.hasNext()) {  Book book = iterator.next();  if (book.isbn.equals(isbn)) {  iterator.remove(); // 使用Iterator的remove方法删除元素  return true;  }  }  return false;  }// 查找图书,根据ISBN号  public Book findBook(String isbn) {  for (Book book : books) {  if (book.isbn.equals(isbn)) {  return book;  }  }  return null;  }  // 列出所有图书  public void listBooks() {  for (Book book : books) {  System.out.println(book);  }  }  
}

 测试类:

package listtest.com;
public class LibrarySystemTest {  public static void main(String[] args) {  LibrarySystem library = new LibrarySystem();  // 添加图书  library.addBook(new Book("Java编程思想", "Bruce Eckel", "123456789"));  library.addBook(new Book("Effective Java", "Joshua Bloch", "987654321"));  // 列出所有图书  System.out.println("当前图书列表:");  library.listBooks();  // 查找图书  Book book = library.findBook("987654321");  if (book != null) {  System.out.println("找到图书:" + book);  } else {  System.out.println("未找到图书");  }  // 删除图书  if (library.removeBook("123456789")) {  System.out.println("图书已删除");  }  // 再次列出所有图书  System.out.println("删除后的图书列表:");  library.listBooks();  }  
}

运行结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入分析 Android ContentProvider (六)

文章目录 深入分析 Android ContentProvider (六)ContentProvider 的性能优化和实践案例&#xff08;续&#xff09;1. 性能优化技巧&#xff08;续&#xff09;1.6. 使用批量插入优化性能示例&#xff1a;批量插入实现 1.7. 使用 Projections 优化查询示例&#xff1a;使用 Pr…

本周热点丨快手《可灵》国际版正式上线、《王者荣耀》国际服海外下载量破5000万

7月第4周 秦彻带动《恋与深空》2.0霸榜全球 《蔚蓝档案》上线3.5周年庆典版本&#xff0c;登顶日服iOS畅销榜 《Honor of Kings》下载量突破五千万 英伟达将开发"Blackwell"的中国定制版芯片 人工智能初创公司Cohere获得5亿美元融资 Fal AI推出全新开源图像生成模型A…

reshape函数及MATLAB应用

reshape 函数在 MATLAB 中是一个非常有用的函数&#xff0c;通过重新排列现有元素来重构数组。它允许你重新调整数组&#xff08;或矩阵&#xff09;的尺寸&#xff0c;而不改变其数据。这个函数特别适用于当你需要将一个矩阵或数组从一种结构转换为另一种结构时&#xff0c;只…

AFSim 仿真系统--任务处理器入门指南

任务处理器 任务处理器&#xff08;WSF_TASK_PROCESSOR&#xff09;是一个WSF处理器&#xff0c;它提供了检查轨迹管理器中的数据&#xff08;轨迹&#xff09;并对其采取行动的能力。这些行动包括&#xff1a; *向下属分配任务 *激活或停用传感器或干扰器 *开火武器 *操纵平台…

昇思MindSpore 应用学习-DCGAN生成漫画头像-CSDN

日期 心得 昇思MindSpore 应用学习-DCGAN生成漫画头像&#xff08;AI代码学习&#xff09; DCGAN生成漫画头像 在下面的教程中&#xff0c;我们将通过示例代码说明DCGAN网络如何设置网络、优化器、如何计算损失函数以及如何初始化模型权重。在本教程中&#xff0c;使用的动…

vue2和el-input无法修改和写入,并且不报错

文章目录 一. 业务场景描述二. 原因分析三.解决方案3.1 方案一 原生标签&#xff08;不建议&#xff09;3.2 方案二 父子传递&#xff08;不建议&#xff09;3.3 方案三 vuex&#xff0c;pinia 状态传值&#xff08;不建议&#xff09;3.4 方案四 vue初始化属性 &#xff08;建…

Java从入门到精通(十三)~ 枚举和注解

晚上好&#xff0c;愿这深深的夜色给你带来安宁&#xff0c;让温馨的夜晚抚平你一天的疲惫&#xff0c;美好的梦想在这个寂静的夜晚悄悄成长。 文章目录 目录 前言 一、枚举 1.1 枚举的概念 ​编辑 1.2 枚举的特点 1.3 枚举的实际运用 1. 状态机&#xff0c;描述属性的…

Nginx配置详解

1. Nginx安装 进入到/usr/local目录下&#xff0c;执行命令&#xff1a; yum install -y nginx通过如下命令启动nginx服务 systemctl start nginx通过如下命令&#xff0c;设置nginx开启自启动 systemctl enable nginxnginx默认占用80端口。 访问ip:80&#xff0c;可以看到…

Open3D 点云按xyz轴等距切片

目录 一、概述 1.1原理 1.2实现步骤 1.3应用 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2按x轴切片 3.3按y轴切片 3.4按z轴切片 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff…

Java中线程池的基本使用

参考这个课程&#xff0c;讲的非常详细 27.线程池使用步骤总结_哔哩哔哩_bilibili 应用场景 商品秒杀 文件上传 订票系统 自定义线程池&#xff08;让我们了解底层逻辑的&#xff09; 构造方法 饱和机制 就是我们的队列饱和后我们该怎么处理 是拒绝这个任务还是啥…

Aria2 任意文件写入漏洞

目录 Aria2介绍漏洞描述漏洞复现 Aria2介绍 Aria2是一个在命令行下运行&#xff0c;多协议&#xff0c;多来源下载工具&#xff08;HTTP / HTTPS&#xff0c;FTP&#xff0c;BitTorrent&#xff0c;Metalink&#xff09;&#xff0c;内建XML-RPC用户界面。Aria提供RPC服务器&a…

流媒体服务器一:使用成熟的流媒体SRS 搭建 RTMP流媒体服务器

1 安装和测试srs流媒体服务器 服务器&#xff1a;SRS(Simple RTMP Server&#xff0c;⽀持RTMP、HTTP-FLV&#xff0c;HLS) 推流端&#xff1a;ffmpeg OBS 拉流端&#xff1a;ffplay VLC srs播放器 1.1 安装srs流媒体服务器 官网 SRS (Simple Realtime Server) | SRS 码…

18746 逆序数

这个问题可以使用归并排序的思想来解决。在归并排序的过程中&#xff0c;我们可以统计逆序数的数量。当我们合并两个已经排序的数组时&#xff0c;如果左边的数组中的元素&#xfffd;&#xfffd;于右边的数组中的元素&#xff0c;那么就存在逆序&#xff0c;逆序数的数量就是…

IEC104转MQTT网关支持MQTT对接Ignition、阿里云、华为云、亚马逊AWS、ThingsBoard、Zabbix平台助力远程管理

钡铼推出了一款专为电力系统设计的数据采集网关——IEC104转MQTT网关BE113&#xff0c;感兴趣的朋友接着往下看&#xff1a; 一、网关概述 IEC104转MQTT(Ignition)网关BE113是一款专为电力系统设计的数据采集网关&#xff0c;支持DL/T645和IEC104等协议的设备。上行支持MQTT协…

二、3 函数递归

自己间接或直接调用自己&#xff08;可大大减少代码量&#xff09; 1、举例 2、递归必须有停下来的条件 3、举例 普通求解数组长度 递归求解

Java进制,进制的转换

目录 进制 进制介绍 案例演示 进制的图示 进制的转化&#xff08;基本功&#xff09; 二进制转换成十进制 八进制转换成十进制 十六进制转换成十进制 十进制转换成二进制 十进制转换成八进制 十进制转换成十六进制 二进制转换成八进制 二进制转换成十六进制 …

Linux信号上

信号 概念 信号是由于进程产生&#xff0c;但是由内核调度传递给另一个进程&#xff1a; 产生信号 按键产生信号: Ctrc --> 2)SIGINT(终止/中断) Ctrz --> 20)SIGTSTOP(终端暂停) Ctr\ --> 3)SIGQUIT(退出) 系统调用产生: kill(2), raise, abort软件条件产生: 如定…

从与原始的Transformer architecture比较来理解GPT

从与原始的Transformer architecture比较来理解GPT flyfish 一、Transformer architecture 先说名词 不同的文献和资料中有不同的名字&#xff0c;其实是一样的意思 1 编码器-解码器多头注意力机制&#xff08;Encoder-Decoder Multi-Head Attention Mechanism&#xff09; …

爬虫-实战爬取虎扑ACG帖子

要求如下: 爬取虎扑步行街 ACG 版面的数据,要求使用多线程来并发爬取。范围是第一页的所有帖子,每个帖子包含标题、主题内容和第一页的所有回复内容。最后打印出爬到的所有帖子的标题。 网址是:ACG圈 - 虎扑社区。 针对上面的要求,我们进行分析: 首先是要使用多线程范…

韩顺平0基础学java——第39天

p820-841 jdbc和连接池 1.JDBC为访问不同的数据库提供了统一的接口&#xff0c;为使用者屏蔽了细节问题。 2.Java程序员使用JDBC&#xff0c;可以连接任何提供了JDBC驱动程序的数据库系统&#xff0c;从而完成对数据库的各种操作。 3.jdbc原理图 JDBC带来的好处 2.JDBC带来的…