Collection集合

List集合

//List循环遍历
import java.util.ArrayList;import java.util.Iterator;
import java.util.List;public class Pratice04 {public static <E> void main(String[] args) {List<Worker> list = new ArrayList<Worker>();list.add(new Worker("zhang3", 18, 3000.0));list.add(new Worker("li4", 25, 3500.0));list.add(new Worker("li4", 25, 3500.0));list.add(new Worker("wang5", 22, 3200.0));list.add(new Worker("wang5", 22, 3200.0));//2)在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300list.add(1, new Worker("zhao6", 24, 3600.0));for (Worker worker : list) {System.out.println(worker);}System.out.println("=====================");//3)删除wang5的信息list.remove(3);//4利用for循环遍历,打印List中所有工人的信息for (Worker worker : list) {System.out.println(worker);}System.out.println("=====================");//方法二:for (Iterator<Worker> it = list.iterator(); it.hasNext(); System.out.println(it.next()));System.out.println("=====================");//利用迭代遍历,对List中所有的工人调用work方法。Iterator<Worker> iterator = list.iterator();while (iterator.hasNext()) {Worker w = iterator.next();w.work();}for (Worker worker : list) {worker.work();}}
}class Worker {private String name;private Integer age;private Double salary;public Worker() {super();}public Worker(String name, Integer age, Double salary) {super();this.name = name;this.age = age;this.salary = salary;}public void work() {System.out.println("奋斗!");}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Double getSalary() {return salary;}public void setSalary(Double salary) {this.salary = salary;}@Overridepublic String toString() {return "Worker [name=" + name + ", age=" + age + ", salary=" + salary + "]";}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((age == null) ? 0 : age.hashCode());result = prime * result + ((name == null) ? 0 : name.hashCode());result = prime * result + ((salary == null) ? 0 : salary.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Worker other = (Worker) obj;if (age == null) {if (other.age != null)return false;} else if (!age.equals(other.age))return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;if (salary == null) {if (other.salary != null)return false;} else if (!salary.equals(other.salary))return false;return true;}}//List去除重复元素
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.ListIterator;public class Pratice05 {public static <E> void main(String[] args) {List<Worker> list = new ArrayList<Worker>();list.add(new Worker("zhang3", 18, 3000.0));list.add(new Worker("li4", 25, 3500.0));list.add(new Worker("li4", 25, 3500.0));list.add(new Worker("wang5", 22, 3200.0));list.add(new Worker("wang5", 22, 3200.0));//去除重复元素(普通for,迭代器,集合都要重写equals方法)//方法一:普通for(选择排序思想==选择对比去重) for (int i = 0; i < list.size() - 1; i++) {for (int j = 1 + i; j < list.size(); j++) {if (list.get(i).equals(list.get(j))) {list.remove(j);j--;}}}System.out.println(list);//方法三:迭代器ListIterator<Worker> lis = list.listIterator();ArrayList<Worker> newlist = new ArrayList<Worker>();while (lis.hasNext()) {Worker w = lis.next();if (!newlist.contains(w)) {newlist.add(w);}}list = newlist;System.out.println(list);//方法四 :创建新集合,forArrayList<Worker> newlist2 = new ArrayList<Worker>();for (Worker worker : list) {if (!newlist2.contains(worker)) {newlist2.add(worker);}}list = newlist2;System.out.println(list);//方法二:利用hashset去除重复元素(重写equals方法)removeDuplist(list);System.out.println(list);}public static List<Worker> removeDuplist(List<Worker> list) {HashSet<Worker> hs = new HashSet<Worker>(list);list.clear();list.addAll(hs);return list;}}

Set集合

//TreeSet比较排序
import java.util.Comparator;
import java.util.TreeSet;//键盘录入5个学生信息(姓名,年龄,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
//注:总分相同等情况下按照语文成绩排序,其次是数学成绩、英语成绩、年龄、姓名
public class Pratice08 {public static void main(String[] args) {TreeSet<Students> ts = new TreeSet<>(new Comparator<Students>() {@Overridepublic int compare(Students s1, Students s2) {double cmp = s2.getSumScore() - s1.getSumScore();double cmp2 = (cmp == 0) ?                    s2.getChineseScore().compareTo(s1.getChineseScore()) : cmp;double cmp3 = (cmp2 == 0) ? s2.getMathScore().compareTo(s1.getMathScore()) : cmp2;double cmp4 = (cmp3 == 0) ? s2.getEnglishScore().compareTo(s1.getEnglishScore()) : cmp3;double cmp5 = (cmp4 == 0) ? s2.getAge().compareTo(s1.getAge()) : cmp4;double cmp6 = (cmp5 == 0) ? s1.getName().compareTo(s2.getName()) : cmp5;return cmp6 < 0 ? -1 : (cmp6 == 0 ? 0 : 1);}});for (int i = 0; i < 20; i++) {String name = (char) (i + 97) + "Mr";Integer age = getRandom(20, 22);double chineseScore = getRandom(80, 82);double mathScore = getRandom(84, 87);double englishScore = getRandom(87, 89);Students s = new Students(name, age, chineseScore, mathScore, englishScore);ts.add(s);}for (Students s : ts) {System.out.println(s);}}public static int getRandom(int start, int end) {return (int) (Math.random() * (end - start + 1) + start);}
}class Students {private String name;private Integer age;private Double chineseScore;private Double mathScore;private Double englishScore;public Students() {super();}public Students(String name, Integer age, Double chineseScore, Double mathScore, Double englishScore) {super();this.name = name;this.age = age;this.chineseScore = chineseScore;this.mathScore = mathScore;this.englishScore = englishScore;}@Overridepublic String toString() {return "Students [name=" + name + ", age=" + age + ", chineseScore=" + chineseScore + ", mathScore=" + mathScore+ ", englishScore=" + englishScore + ", getSumScore()=" + getSumScore() + "]";}public Double getSumScore() {Double sumScore = chineseScore + mathScore + englishScore;return sumScore;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Double getChineseScore() {return chineseScore;}public void setChineseScore(Double chineseScore) {this.chineseScore = chineseScore;}public Double getMathScore() {return mathScore;}public void setMathScore(Double mathScore) {this.mathScore = mathScore;}public Double getEnglishScore() {return englishScore;}public void setEnglishScore(Double englishScore) {this.englishScore = englishScore;}}

Map集合

//Map集合遍历
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;/** 1、使用HashMap类实例化一个Map类型的对象m1,键(String类型)和值(Integer型)分别用于存储员工的姓名和工资,存入数据如下:张三——800元;李四——1500元;王五——3000元;1)将张三的工资更改为2600元2)为所有员工工资加薪100元;3)遍历集合中所有的员工4)遍历集合中所有的工资试试将键改写成Employee*/public class Demo01 {public static void main(String[] args) {Map<String, Integer> m = new HashMap<String, Integer>();m.put("张三", 800);m.put("李四", 1500);m.put("王五", 3000);//1.将张三的工资更改为2600元m.put("张三", 2600);System.out.println(m);//2.为所有员工工资加薪100元;//获取所有键(员工)的集合Set<String> keys = m.keySet();//通过键修改值for (String name : keys) {m.put(name, m.get(name) + 100);}System.out.println(m);//3)遍历集合中所有的员工Set<String> keySet = m.keySet();for (String name : keySet) {System.out.println(name);}//4)遍历集合中所有的工资Collection<Integer> values = m.values();for (Integer salary : values) {System.out.println(salary);}System.out.println("==========================");//5.遍历集合//1)迭代器遍历Iterator<String> it = m.keySet().iterator();while (it.hasNext()) {String key = it.next();Integer salary = m.get(key);System.out.println(key + "|" + salary);}System.out.println("==========================");//2)for遍历(通过遍历键集合得到每一个键和对应的值)for (String key : m.keySet()) {System.out.println(key + "|" + m.get(key));}System.out.println("==========================");//3)通过map的entry方法获取键值对(for)Set<Entry<String, Integer>> keyValues = m.entrySet();for (Entry<String, Integer> keyValue : keyValues) {String key = keyValue.getKey();Integer value = keyValue.getValue();System.out.println(key + "|" + value);}System.out.println("==========================");//4)通过map的entry方法获取键值对(while:用迭代器)Iterator<Entry<String, Integer>> iterator = m.entrySet().iterator();while (iterator.hasNext()) {Entry<String, Integer> keyValue = iterator.next();String key = keyValue.getKey();Integer value = keyValue.getValue();System.out.println(key + "|" + value);}}
}
//TreeMap比较排序
import java.util.Comparator;
import java.util.TreeMap;public class TreeMapDemo02 {public static void main(String[] args) {TreeMap<Employee, Double> tm = new TreeMap<>(new Comparator<Employee>() {@Overridepublic int compare(Employee e1, Employee e2) {double cmp = e1.getSalary() - e2.getSalary();double cmp2 = (cmp == 0) ? e1.getId().compareTo(e2.getId()) : cmp;double cmp3 = (cmp2 == 0) ? e1.getName().compareTo(e2.getName()) : cmp2;return cmp3 > 0 ? 1: (cmp < 0 ? -1 : 0);}});tm.put(new Employee("1001", "zhangsan", 8000.0), 8000.0);tm.put(new Employee("1002", "lisi", 8000.0), 8000.0);tm.put(new Employee("1001", "haha", 8000.0), 8000.0);tm.put(new Employee("1003", "zhangsan", 8000.0), 8000.0);tm.put(new Employee("1001", "hehe", 8000.0), 8000.0);tm.put(new Employee("1005", "zhangsan", 8000.0), 8000.0);tm.put(new Employee("1007", "zhangsan", 8000.0), 8000.0);tm.put(new Employee("1006", "zhangsan", 8000.0), 8000.0);tm.put(new Employee("1001", "zhangsan", 8000.0), 8000.0);tm.put(new Employee("1001", "zhangsan", 9000.0), 8000.0);tm.put(new Employee("1001", "zhangsan", 10000.0), 8000.0);tm.put(new Employee("1001", "zhangsan", 5000.0), 8000.0);for (Employee e : tm.keySet()) {Double salary = tm.get(e);System.out.println(e + "=" + salary);}}}

集合(Collection、Map)相关推荐

  1. Java—一篇读懂java集合(Collection/Map)及Lambda表达式

    集合简介   在集合类之前,我们使用数组存储,数组既可以存储基本数据类型的值,也可以存储对象(对象的引用变量),但是集合只能存储对象.   Java集合类似于一种容器,将同类型的对象(实际为对象引用) ...

  2. Java Review - 集合框架=Collection+Map

    文章目录 概述 容器 = Collection + Map Collection Set TreeSet HashSet LinkedHashSet List ArrayList Vector Lin ...

  3. 容器集合——Collection(单列)、Map(双列)

    集合体系结构 集合类的特点 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 集合类的体系图 Collection(单列) 概述     - 是单例集合的顶层接口,它表示一组对象,这些对 ...

  4. Java的集合之Map接口---(英雄联盟的CP例子)从光棍(Collection)变夫妻(Map)

    目录 Interface Map Map接口概述 Map接口和Collection接口的不同 添加功能 V put(K key, V value) 删除功能 void clear() V remove ...

  5. 集合Collection和Map的基础掌握

    1.Coolection 1 概述   英文名称Collection,是用来存放对象的数据结构.其中长度可变,而且集合中可以存放不同类型的对象,并提供了一组操作成批对象的方法.   数组的缺点:长度固 ...

  6. c++ map iterator 获取key_Java集合框架——Map接口

    第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...

  7. java基础集合简介Map(三)下

    From: https://www.cnblogs.com/douyu2580860/p/8358768.html --Map接口简介 今天来看一看map集合,map映射接口,用于存放键值对,< ...

  8. Java 集合Collection常见知识点汇总~

    看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧. java.util包中包含了一系列重要的集合类,而对于集合类,主要 ...

  9. 【再探backbone 02】集合-Collection

    前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...

  10. Spring按类型自动装配注入数组、集合、Map

    Spring按类型自动装配注入数组.集合.Map时,是把应用上下文中对应类型的bean装配进集合,而不是直接查找一个对应类型的集合然后注入.以下面这段代码为例: import org.springfr ...

最新文章

  1. 用Matplotlib轻松复刻分析图,看看哪个城市买房最自由
  2. Spring 教程06
  3. LeetCode 14. Longest Common Prefix
  4. 随机数排列JAVA_随机数生成器,按排序顺序
  5. mysql group by 规则_mysql 的group by 满足的规则要求:
  6. ccs10怎么导入工程文件_FCPX导入位置选项时如何使用!
  7. 用java做登录界面_求用JAVA编写的登陆界面!
  8. java线程future_Java中多线程对运行结果怎么利用future获取
  9. 宜信正式开源其 AIOps 落地三大利器
  10. leetcode链表刷题 python
  11. 分享2个堪称黑科技的Ai一键抠图网站 让你秒变PS抠图大神
  12. 获取淘宝天猫商品历史价格信息API接口
  13. 微信公众号开发—通过网页授权实现业务系统登录及用户绑定(微信网页授权自动登录业务系统)
  14. sencha touch 相机,相册调用
  15. Python交流QQ群
  16. Android使用AudioManager切换到听筒模式
  17. vue中前端实现pdf预览(含vue-pdf插件用法)
  18. RabbitMQ学习笔记:集群和网络分区(Network Partitions)
  19. Vue脚手架创建项目流程
  20. 鼠标移入图标显示二维码功能实现

热门文章

  1. 微信小程序 数组分隔
  2. GetMapping
  3. C++开发之界面库资源推荐篇
  4. 背景图片全屏拉伸显示
  5. Java实现FTP上传到服务器
  6. gorm 软删除deleted_at导致索引失效
  7. 面对教培机构不退费,中创教育建议投诉加反馈
  8. Python基础: 安装Pycharm
  9. Git回退到某个历史版本
  10. html div隐藏滚动条不能使用,CSS隐藏滚动条但不影响正常滚动