java之集合ArrayList,LinkedList,HashMap运用
学习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运用相关推荐
- Java 7 对ArrayList和HashMap的性能的提升
2019独角兽企业重金招聘Python工程师标准>>> 在最新的Java7的ArrayList和HashMap, JDK做了一些调整. ArrayList以前的版本是默认创建10个元 ...
- Java学习——集合ArrayList类
1,集合ArrayList类底层就是用数组来实现的,其语法为: ArrayList objectName =new ArrayList<>(); 这个E一定要用引用数据类型 2,集合跟数组 ...
- 集合框架源码分析三(实现类篇ArrayList,LinkedList,HashMap)
一.ArrayList,可自动扩充容量的动态数组 public class ArrayList<E> extends AbstractList<E> implements Li ...
- 集合,ArrayList,LinkedList,HashMap,LinkedHashMap,ConcurremtHashMap分别的总结,volatile 关键字的使用
可以加入资源分享讨论群769674658,296389054 备注Jon_jing 1 集合 1.1 List 1.1.1 ArrayList 动态数组 实现lis ...
- java arraylist6_java 集合 ArrayList
变量--容器 存储一个元素 数组--容器 一组具有某种特性的数据存放在一起: 存储一组元素(数据类型一致)长度固定 自己定义了Box(ArrayBox LinkedBox)--容器 存储一组元素 长度 ...
- Java中集合ArrayList、Map的使用
** 完整类的创建* package com.test.Model;public class Person {//创建Person类 包括Getter.Setter方法和无参构造方法.全参构造方法pr ...
- Java技能树-集合-ArrayList类
1 需求 2 接口 Class ArrayList<E> public class ArrayList<E> extends AbstractList<E> imp ...
- 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )
文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...
- Java中使用ArrayList的10个示例–教程
Java中的ArrayList是HashMap之后最常用的集合类. Java ArrayList表示一个可自动调整大小的数组,并用于代替数组. 由于创建数组后我们无法修改数组的大小,因此我们更喜欢在J ...
- Java常用集合笔记
最近事情比较少,闲暇之余温习巩固一下Java的一些基础知识,并做一些笔记, Java常用集合, 主要参考的这篇文章:Java常用集合 ArrayList/Vertor 1. ArrayList 的主要 ...
最新文章
- java Opencv 图片修复 Photo
- pyinstaller打包生成的exe文件(并设置运行时静默)
- Scrum立会报告+燃尽图(十一月十五日总第二十三次):代码规范与技术交流
- jsp基础、el技术、jstl标签、javaEE的开发模式
- 64位内核第一讲,和32位内核的区别
- 堆排序 海量数据求前N大的值
- vscode如何连接新设备_台州要用“超级平台”连接300万台工业设备,成为全省新示范...
- 不同层次程序员的比较:三流比设计,一流比方法,顶级比什么?
- Java面试技巧—如何自我介绍
- tm是什么域名_入驻天猫,需要什么条件?
- java post加密_使用Java和PHP的BCrypt,发送加密的密码并对其进行解码 - java
- python列表嵌套字典取值_Python学习100天-Day03(字符串、列表、字典、元组)
- 计算机二级c语言带小抄,计算机二级C语言上机题库(可缩印做小抄)..docx
- 图贴图软件 ——— Snipaste
- 深入理解overlayfs(二):使用与原理分析
- 紫薇圣人的程序员人生-第3回[原创IT小说]
- Sorry to Amy.
- 追光的人终会光芒万丈
- OpenCV2.0 peopledetect 学习体会---转自opencv中文论坛
- 搭建个人码免签支付系统