• 【Day20】集合


    集合:List、Set、Map

    Arraylist: 插入或者删除元素时,它提供更好的性能

    LInkedList: 插入或者删除元素时,它提供更好的性能

    List接口:存储不唯一,有序的对象

    Set:存储唯一的值,无序的对象

    Map:接口存储一组键值对象,提供key到value的映射

    集合主要是要会使用

    List接口使用

    1. package Collection1;
    2. public class Demo1 {
    3. private String name;
    4. private int id;
    5. private String author;
    6. public Demo1() {
    7. }
    8. public Demo1(String name, int id, String author) {
    9. super();
    10. this.name = name;
    11. this.id = id;
    12. this.author = author;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. public int getId() {
    21. return id;
    22. }
    23. public void setId(int id) {
    24. this.id = id;
    25. }
    26. public String getAuthor() {
    27. return author;
    28. }
    29. public void setAuthor(String author) {
    30. this.author = author;
    31. }
    32. @Override
    33. public String toString() {
    34. return "Demo1 [name=" + name + ", id=" + id + ", author=" + author
    35. + "]";
    36. }
    37. }

    Arraylist的使用

    1. package Collection1;
    2. import java.util.ArrayList;
    3. public class ArrayListDemo01 {
    4. public static void main(String[] args) {
    5. // 准备数据
    6. Demo1 demo1 = new Demo1("第九版防控方案对奥密克戎变异株仍有效",1002,"百度");
    7. Demo1 demo2 = new Demo1("第案对奥密克戎变异株仍有效",1003,"百度");
    8. Demo1 demo3 = new Demo1("第九版防控方异株仍有效",1004,"百度");
    9. Demo1 demo4 = new Demo1("第九版防控方案对奥密效",1001,"百度");
    10. Demo1 demo5 = new Demo1("第九版防控方案对奥密克戎变有效",1005,"百度");
    11. // 创建集合
    12. ArrayList aa= new ArrayList();
    13. // 给集合添加数据
    14. aa.add(demo5);
    15. aa.add(demo4);
    16. aa.add(demo3);
    17. aa.add(demo2);
    18. aa.add(demo1);
    19. // 获取集合中的元素个数
    20. System.out.println(aa.size());
    21. // 获取指点元素
    22. Object obj = aa.get(1);
    23. // Demo1 dd =(Demo1)obj;
    24. System.out.println(obj);//输出的是Demo1中重写的输出方法,如果没有重写,则需要重写
    25. System.out.println("------------------------------------------");
    26. // 循环输出
    27. for (int i = 0; i < aa.size(); i++) {
    28. // Demo1中重写方法,可以直接输出
    29. System.out.println(aa.get(i));
    30. }
    31. System.out.println("------------------------------------");
    32. // 增强循环遍历
    33. for(Object obj1 : aa){
    34. // Demo1 dd = (Demo1)obj1;
    35. System.out.println(obj1);
    36. }
    37. System.out.println("-------------------------------------");
    38. // 删除集合中指定位置的元素
    39. Object ob = aa.remove(2);
    40. for(Object obj1 : aa){
    41. // Demo1 dd = (Demo1)obj1;
    42. System.out.println(obj1);
    43. }
    44. System.out.println("------------------------");
    45. // 判断是否包含指定的元素
    46. Boolean bool=aa.contains(demo3);
    47. System.out.println("是否包含demo1的元素:"+bool);
    48. // 判断集合是否为空
    49. System.out.println("集合是否为空:"+aa.isEmpty());
    50. // 将集合转化称数组
    51. Object[] obje=aa.toArray();
    52. for (int i = 0; i < obje.length; i++) {
    53. System.out.println(obje[i]);
    54. }
    55. // 清空集合
    56. aa.clear();
    57. System.out.println("集合是否为空:"+aa.isEmpty());
    58. System.out.println(aa.size());
    59. }
    60. }

    LInkedList的使用

    1. package Collection1;
    2. import java.util.Iterator;
    3. import java.util.LinkedList;
    4. import java.util.List;
    5. public class LinkedListDemo1 {
    6. public static void main(String[] args) {
    7. // 造数据
    8. Demo1 demo1 = new Demo1("法国红酒看来",1002,"百度");
    9. Demo1 demo2 = new Demo1("第案456421212",1003,"百度");
    10. Demo1 demo3 = new Demo1("456第该回家看了56",1004,"百度");
    11. Demo1 demo4 = new Demo1("推哦怕#¥%……&*",1001,"百度");
    12. Demo1 demo5 = new Demo1("第九版防控方案对奥密克戎变有效",1005,"百度");
    13. // 创建对象,LinkedList是Listd 实例对象,需要导包
    14. List list=new LinkedList();
    15. LinkedList lis = new LinkedList();
    16. // 添加数据
    17. list.add(demo1);
    18. list.add(demo2);
    19. list.add(demo3);
    20. list.add(demo4);
    21. list.add(demo5);
    22. lis.add(demo1);
    23. lis.add(demo2);
    24. lis.add(demo3);
    25. lis.add(demo4);
    26. lis.add(demo5);
    27. // 迭代器遍历数据
    28. Iterator it= list.iterator();
    29. while(it.hasNext()){
    30. Object object = it.next();
    31. Demo1 de = (Demo1)object;
    32. System.out.println(de);
    33. }
    34. System.out.println("--------------------------------------------------------");
    35. // 把指定的元素插入,demo5插入在最前面,demo4插入在最后面
    36. // 前提是需要向下转型,link有足够的权限
    37. LinkedList link = (LinkedList)list;
    38. link.addFirst(demo5);
    39. link.addLast(demo4);
    40. System.out.println("************************************************");
    41. lis.addFirst(demo5);
    42. Iterator itt=lis.iterator();
    43. while(itt.hasNext()){
    44. Object obj=itt.next();
    45. Demo1 dd =(Demo1)obj;
    46. System.out.println(dd);
    47. }
    48. System.out.println("************************************************");
    49. for (Object object : link) {
    50. System.out.println(object);
    51. }
    52. System.out.println("--------------------------------------------------------------");
    53. // 获取第一个元素和最后一个元素
    54. System.out.println(link.getFirst());
    55. System.out.println(link.getLast());
    56. System.out.println("-------------------------------------------");
    57. // 删除第一个元素和最后一个元素
    58. link.removeFirst();
    59. link.removeLast();
    60. for (Object object : link) {
    61. System.out.println(object);
    62. }
    63. }
    64. }

    Set接口的使用

    HashMap的用法

    1. package Collection2;
    2. public class NewsTitle {
    3. private String name;
    4. private int id;
    5. private String author;
    6. public NewsTitle() {
    7. }
    8. public NewsTitle(String name, int id, String author) {
    9. super();
    10. this.name = name;
    11. this.id = id;
    12. this.author = author;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. public int getId() {
    21. return id;
    22. }
    23. public void setId(int id) {
    24. this.id = id;
    25. }
    26. public String getAuthor() {
    27. return author;
    28. }
    29. public void setAuthor(String author) {
    30. this.author = author;
    31. }
    32. @Override
    33. public String toString() {
    34. return "Demo1 [name=" + name + ", id=" + id + ", author=" + author
    35. + "]";
    36. }
    37. }
    1. package Collection2;
    2. import java.util.HashSet;
    3. import java.util.Iterator;
    4. public class HashSetDemo2 {
    5. public static void main(String[] args) {
    6. // 准备容器
    7. HashSet hs = new HashSet();
    8. HashSet hs1=new HashSet();
    9. // 准备数据:创建5个NewsTitle类对象
    10. NewsTitle nt1 = new NewsTitle( "三亚新增本土480+774",1001, "百度");
    11. NewsTitle nt2 = new NewsTitle( "中国成功发射一箭十六星",1002, "中国航天");
    12. NewsTitle nt3 = new NewsTitle( "男子救落水5人后遇难 同伴讲述经过",1003, "民间观察");
    13. NewsTitle nt4 = new NewsTitle( "苏氏祖祠:苏炳添是苏东坡第29代孙",1004, "生活观察");
    14. NewsTitle nt5 = new NewsTitle( "家长花200万给娃集奥特曼卡没集齐",1005, "合肥观察");
    15. // 将数据存储到集合中
    16. hs.add(nt1);
    17. hs.add(nt3);
    18. hs.add(nt5);
    19. hs.add(nt2);
    20. hs.add(nt4);
    21. hs.add(nt4);
    22. // 把hs中的所有元素统统赋值给hs
    23. hs1.addAll(hs);
    24. // 获取集合中元素的个数
    25. System.out.println(hs.size());
    26. // 第一种方式
    27. // 获取集合中的元素
    28. for(Object object: hs){
    29. NewsTitle ne=(NewsTitle)object;
    30. System.out.println(ne);
    31. }
    32. System.out.println("*******************************************");
    33. for(Object ob:hs1){
    34. NewsTitle nn=(NewsTitle)ob;
    35. System.out.println(nn);
    36. }
    37. System.out.println("_________________________________");
    38. // 第二种方式,迭代器方式
    39. Iterator it =hs.iterator();
    40. while(it.hasNext()){
    41. Object object =it.next();
    42. NewsTitle nt = (NewsTitle)object;
    43. System.out.println(nt);
    44. }
    45. System.out.println("*******************************************************");
    46. // 删除指定数据
    47. System.out.println(hs.remove(nt1));
    48. Iterator it1 = hs.iterator();
    49. while(it1.hasNext()){
    50. Object object = it1.next();
    51. NewsTitle ns=(NewsTitle)object;
    52. System.out.println(ns);
    53. }
    54. }
    55. }

    Map接口的用法

    HashMap的用法

    package Collection3;

    public class Demo3 {

        private String name;

        private String author;

        public Demo3() {

        }

        public Demo3( String name, String author) {
            super();
            this.name = name;
            this.author = author;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getAuthor() {
            return author;
        }

        public void setAuthor(String author) {
            this.author = author;
        }

        @Override
        public String toString() {
            return "Demo1 [name=" + name + ", author=" + author
                    + "]";
        }
    }
     

    1. package Collection3;
    2. import java.util.Collection;
    3. import java.util.HashMap;
    4. import java.util.Iterator;
    5. import java.util.Map;
    6. import java.util.Set;
    7. import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
    8. public class HashMapDemo1 {
    9. public static void main(String[] args) {
    10. HashMap hm=new HashMap();
    11. hm.put("ah", "安徽");
    12. hm.put("bj", "北京");
    13. hm.put("sh", "上海");
    14. hm.put("hz", "杭州");
    15. hm.put("nj", "南京");
    16. // 获取个数
    17. System.out.println(hm.size());
    18. // 根据键获取对应的值
    19. Object obj = hm.get("ah");
    20. String st = (String)obj;
    21. System.out.println(st);
    22. // 简写(根据键获取北京)
    23. System.out.println(hm.get("bj"));
    24. // 根据键删除对应的值
    25. Object obj1=hm.remove("sh");
    26. String st1=(String)obj1;
    27. System.out.println(st1);
    28. System.out.println(hm.size());
    29. System.out.println(hm.get("sh"));
    30. // 获取HashMap中所有的键
    31. Set set = hm.keySet();
    32. for(Object obj2:set){
    33. String st2 = (String)obj2;
    34. System.out.println(st2);
    35. }
    36. // 获取HashMap中所有的值
    37. Collection co=hm.values();
    38. for(Object obj3:co){
    39. String st3 = (String)obj3;
    40. System.out.println(st3);
    41. }
    42. System.out.println(hm.containsKey("bj"));
    43. System.out.println(hm.containsValue("北京"));
    44. // 遍历键值对的三种方式
    45. // 方式一:
    46. System.out.println("-------------------------------------------------");
    47. Set set1 = hm.keySet();
    48. for(Object obj2:set1){
    49. // String st2 = (String)obj2;
    50. // Object valu=hm.get(st2);
    51. // String valu2=(String)valu;
    52. // System.out.println(st2+"\t"+valu2);
    53. //合并
    54. System.out.println(obj2+"\t"+hm.get(obj2));
    55. }
    56. System.out.println("---------------------------------------------------");
    57. // 方式二:
    58. Set set2 = hm.keySet();
    59. Iterator it=set2.iterator();
    60. while(it.hasNext()){
    61. Object obje=it.next();
    62. // 获取值
    63. String key = (String)obje;
    64. Object obje1=hm.get(key);
    65. String value =(String)obje1;
    66. System.out.println(key+"\t"+value);
    67. }
    68. // 方式三:
    69. System.out.println("------------------------------------------------------------------");
    70. Set set3 =hm.entrySet();
    71. for(Object objec:set3){
    72. Map.Entry me=(Map.Entry)objec;
    73. Object key=me.getKey();
    74. String stKey =(String)key;
    75. Object valu=me.getValue();
    76. String stValue=(String)valu;
    77. System.out.println(stKey+"\t"+stValue);
    78. }
    79. }
    80. }

  • 相关阅读:
    关于chatGPT对有关Docker Desktop问题的一个回答
    《MySQL实战45讲》——学习笔记16 “order by排序原理、varchar(255)“
    力扣题目学习笔记(OC + Swift)
    L02 Laravel 教程 - Web 开发实战进阶 - 笔记
    IDEA 在远程 Tomcat 上运行项目(亲身避坑版)
    Codeforces Round #833 (Div. 2)
    最炫表白网站html5源码_七夕程序员的十款表白源码_html+css+js
    worthington酶活性研究丨worthington pH值的影响
    CSDN21天学习挑战赛 - 第三篇打卡文章
    Cadence OrCAD Capture 查找功能详细介绍
  • 原文地址:https://blog.csdn.net/fool_Java/article/details/126288844