学习java的第十三天

  • 1、定义歌曲类,属性:歌曲名、歌手名、播放时长(int 类型),定义play方法显示歌曲信息。
  • 2、将集合改为HashMap,将歌名作为键,歌曲作为值

1、定义歌曲类,属性:歌曲名、歌手名、播放时长(int 类型),定义play方法显示歌曲信息。

// 1、添加10首歌到ArrayList集合中
// 2、遍历所有的歌曲,显示歌曲信息
// 3、输入歌曲名,在集合中查找该歌曲
// 4、输入整数索引,删除该位置的歌曲
// 5、找出播放时间最长的歌曲
// 6、将所有歌曲复制到LinkedList集合中

public class Music {//  1、定义歌曲类,属性:歌曲名、歌手名、播放时长(int 类型),定义play方法显示歌曲信息。
//    1、添加10首歌到ArrayList集合中
//    2、遍历所有的歌曲,显示歌曲信息
//    3、输入歌曲名,在集合中查找该歌曲
//    4、输入整数索引,删除该位置的歌曲
//    5、找出播放时间最长的歌曲
//    6、将所有歌曲复制到LinkedList集合中private String name;//歌手名private String song;//歌曲名private int time;//播放时长@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((song == null) ? 0 : song.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Music other = (Music) obj;if (song == null) {if (other.song != null)return false;} else if (!song.equals(other.song))return false;return true;}public Music() {super();}public Music(String song, String name, int time) {super();this.name = name;this.song = song;this.time = time;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSong() {return song;}public void setSong(String song) {this.song = song;}public int getTime() {return time;}public void setTime(int time) {this.time = time;}@Overridepublic String toString() {return "Music [name=" + name + ", song=" + song + ", time=" + time + "]";}public void play(){System.out.println("歌手名为:"+getName()+";歌曲名为:"+"《"+getSong()+"》"+";播放时长为:"+getTime()+"分");}}
public class TestMusic {public static void main(String[] args) {//        1、添加10首歌到ArrayList集合中ArrayList<Music> list = new ArrayList<Music>();list.add(new Music("绿色", "陈雪凝", 5));list.add(new Music("烦恼歌", "张学友", 3));list.add(new Music("我相信", "杨安培", 6));list.add(new Music("停在昨天", "乔洋", 5));list.add(new Music("我的世界", "陈姿彤", 7));list.add(new Music("如果没有你", "莫文蔚", 4));list.add(new Music("狗尾草", "安旭", 8));list.add(new Music("老男孩", "筷子兄弟", 6));list.add(new Music("泡沫", "邓紫棋", 9));list.add(new Music("我的天空", "南征北战", 5));
//        2、遍历所有的歌曲,显示歌曲信息Iterator<Music> iterator = list.iterator();while (iterator.hasNext()) {iterator.next().play();}
//        3、输入歌曲名,在集合中查找该歌曲boolean flage = true;for (Music music : list) {if(music.getSong().equals("我的天空")){flage = false;System.out.print("此歌曲为:");music.play();}}if(flage){System.out.println("没有找到此歌曲");}
//        4、输入整数索引,删除该位置的歌曲list.remove(1);list.get(1).play();
//        5、找出播放时间最长的歌曲int max = list.get(0).getTime();for (int i = 0; i < list.size(); i++) {if(list.get(i).getTime() > max){max = list.get(i).getTime();}}System.out.println(max);for (Music music : list) {if(music.getTime() == max){System.out.print("时间最长的歌曲为:");music.play();}}
//        6、将所有歌曲复制到LinkedList集合中LinkedList<Music> linkedList = new LinkedList<>();linkedList.addAll(list);Iterator<Music> iterator2 = linkedList.iterator();while (iterator2.hasNext()) {iterator2.next().play();}}
}

2、将集合改为HashMap,将歌名作为键,歌曲作为值

public class Test1Music {public static void main(String[] args) {//      2、将集合改为HashMap,将歌名作为键,歌曲作为值HashMap<String,Music> hashMap = new HashMap<>();
//        1、添加10首歌到集合中hashMap.put("绿色",(new Music("绿色", "陈雪凝", 5)));hashMap.put("烦恼歌", new Music("烦恼歌", "张学友", 3));hashMap.put("我相信", new Music("我相信", "杨安培", 6));hashMap.put("停在昨天", new Music("停在昨天", "乔洋", 5));hashMap.put("我的世界", new Music("我的世界", "陈姿彤", 7));hashMap.put("如果没有你", new Music("如果没有你", "莫文蔚", 4));hashMap.put("狗尾草", new Music("狗尾草", "安旭", 8));hashMap.put("老男孩", new Music("老男孩", "筷子兄弟", 6));hashMap.put("泡沫", new Music("泡沫", "邓紫棋", 9));hashMap.put("我的天空", new Music("我的天空", "南征北战", 5));
//        2、遍历所有的歌曲,显示歌曲信息Iterator<String> iterator = hashMap.keySet().iterator();while (iterator.hasNext()) {String key = iterator.next();System.out.println(key+","+hashMap.get(key));}
//        3、输入歌曲名,在集合中查找该歌曲System.out.println(hashMap.get("绿色"));System.out.println("---------");
//        4、输入歌曲名,删除歌曲hashMap.remove("烦恼歌");Iterator<String> iterator1 = hashMap.keySet().iterator();while (iterator1.hasNext()) {String key1 = iterator1.next();System.out.println(key1+","+hashMap.get(key1));}}
}

java之集合ArrayList,LinkedList,HashMap运用相关推荐

  1. Java 7 对ArrayList和HashMap的性能的提升

    2019独角兽企业重金招聘Python工程师标准>>> 在最新的Java7的ArrayList和HashMap, JDK做了一些调整. ArrayList以前的版本是默认创建10个元 ...

  2. Java学习——集合ArrayList类

    1,集合ArrayList类底层就是用数组来实现的,其语法为: ArrayList objectName =new ArrayList<>(); 这个E一定要用引用数据类型 2,集合跟数组 ...

  3. 集合框架源码分析三(实现类篇ArrayList,LinkedList,HashMap)

    一.ArrayList,可自动扩充容量的动态数组 public class ArrayList<E> extends AbstractList<E> implements Li ...

  4. 集合,ArrayList,LinkedList,HashMap,LinkedHashMap,ConcurremtHashMap分别的总结,volatile 关键字的使用

    可以加入资源分享讨论群769674658,296389054 备注Jon_jing 1    集合 1.1    List 1.1.1    ArrayList      动态数组     实现lis ...

  5. java arraylist6_java 集合 ArrayList

    变量--容器 存储一个元素 数组--容器 一组具有某种特性的数据存放在一起: 存储一组元素(数据类型一致)长度固定 自己定义了Box(ArrayBox LinkedBox)--容器 存储一组元素 长度 ...

  6. Java中集合ArrayList、Map的使用

    ** 完整类的创建* package com.test.Model;public class Person {//创建Person类 包括Getter.Setter方法和无参构造方法.全参构造方法pr ...

  7. Java技能树-集合-ArrayList类

    1 需求 2 接口 Class ArrayList<E> public class ArrayList<E> extends AbstractList<E> imp ...

  8. 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )

    文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...

  9. Java中使用ArrayList的10个示例–教程

    Java中的ArrayList是HashMap之后最常用的集合类. Java ArrayList表示一个可自动调整大小的数组,并用于代替数组. 由于创建数组后我们无法修改数组的大小,因此我们更喜欢在J ...

  10. Java常用集合笔记

    最近事情比较少,闲暇之余温习巩固一下Java的一些基础知识,并做一些笔记, Java常用集合, 主要参考的这篇文章:Java常用集合 ArrayList/Vertor 1. ArrayList 的主要 ...

最新文章

  1. java Opencv 图片修复 Photo
  2. pyinstaller打包生成的exe文件(并设置运行时静默)
  3. Scrum立会报告+燃尽图(十一月十五日总第二十三次):代码规范与技术交流
  4. jsp基础、el技术、jstl标签、javaEE的开发模式
  5. 64位内核第一讲,和32位内核的区别
  6. 堆排序 海量数据求前N大的值
  7. vscode如何连接新设备_台州要用“超级平台”连接300万台工业设备,成为全省新示范...
  8. 不同层次程序员的比较:三流比设计,一流比方法,顶级比什么?
  9. Java面试技巧—如何自我介绍
  10. tm是什么域名_入驻天猫,需要什么条件?
  11. java post加密_使用Java和PHP的BCrypt,发送加密的密码并对其进行解码 - java
  12. python列表嵌套字典取值_Python学习100天-Day03(字符串、列表、字典、元组)
  13. 计算机二级c语言带小抄,计算机二级C语言上机题库(可缩印做小抄)..docx
  14. 图贴图软件 ——— Snipaste
  15. 深入理解overlayfs(二):使用与原理分析
  16. 紫薇圣人的程序员人生-第3回[原创IT小说]
  17. Sorry to Amy.
  18. 追光的人终会光芒万丈
  19. OpenCV2.0 peopledetect 学习体会---转自opencv中文论坛
  20. 搭建个人码免签支付系统

热门文章

  1. 中国个人企业征信体系介绍
  2. 中小型企业应该选择什么样的OA系统?
  3. 计算机桌面有扫描图标如何开始扫,如何使用扫描仪扫描文件
  4. linux学习笔记入门之用户及文件权限
  5. fluent入门学习(一):三维卡门涡街算例
  6. 当Linux配置zh_CN.UTF-8 ,中文还是显示乱码解决办法
  7. 乐动ld06激光雷达sdk改bug记录分享
  8. elementui进度条如何设置_Progress 进度条
  9. 美国企业家宣言(转)
  10. 《气候宣言》宣布100多家签约组织,承诺至2040年或更早实现净零碳排放