• 2022年0702 第八课 JAVA中的数据结构重中的集合


    2022年0702 第八课 JAVA中的数据结构重中的集合.

    第一部分:下面的内容是百度中查到的:在Java的APL中也有介绍。

    在编程时,可以使用数组来保存多个对象,但数组长度不可变化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的。如果需要保存数量变化的数据,数组就有点无能为力了。而且数组无法保存具有映射关系的数据,如成绩表为语文——79,数学——80,这种数据看上去像两个数组,但这两个数组的元素之间有一定的关联关系。

    为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java 提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。Java 所有的集合类都位于 java.util 包下,提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。

    集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量),而集合里只能保存对象(实际上只是保存对象的引用变量,但通常习惯上认为集合里保存的是对象)。

     

    接口名称作    用
    Iterator 接口集合的输出接口,主要用于遍历输出(即迭代访问)Collection 集合中的元素,Iterator 对象被称之为迭代器。迭代器接口是集合接口的父接口,实现类实现 Collection 时就必须实现 Iterator 接口。
    Collection 接口是 List、Set 和 Queue 的父接口,是存放一组单值的最大接口。所谓的单值是指集合中的每个元素都是一个对象。一般很少直接使用此接口直接操作。
    Queue 接口Queue 是 Java 提供的队列实现,有点类似于 List。
    Dueue 接口是 Queue 的一个子接口,为双向队列。
    List 接口是最常用的接口。是有序集合,允许有相同的元素。使用 List 能够精确地控制每个元素插入的位置,用户能够使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素,与数组类似。
    Set 接口不能包含重复的元素。
    Map 接口是存放一对值的最大接口,即接口中的每个元素都是一对,以 key➡value 的形式保存。
    HashSet为优化査询速度而设计的 Set。它是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,实现比较简单
    TreeSet实现了 Set 接口,是一个有序的 Set,这样就能从 Set 里面提取一个有序序列
    ArrayList一个用数组实现的 List,能进行快速的随机访问,效率高而且实现了可变大小的数组
    ArrayDueue是一个基于数组实现的双端队列,按“先进先出”的方式操作集合元素
    LinkedList对顺序访问进行了优化,但随机访问的速度相对较慢。此外它还有 addFirst()、addLast()、getFirst()、getLast()、removeFirst() 和 removeLast() 等方法,能把它当成栈(Stack)或队列(Queue)来用
    HsahMap按哈希算法来存取键对象
    TreeMap可以对键对象进行排序

    第二部分代码实战。

    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. public class Muster {
    4. public static void main(String[] args) {
    5. ArrayList<Integer> list =new <Integer> ArrayList();
    6. list.add(56);
    7. list.add(10);
    8. list.add(58);
    9. list.add(890);
    10. list.add(786);
    11. list.add(89);
    12. list.add(565);
    13. list.add(45);
    14. list.add(1000);
    15. list.add(6573);
    16. //list.add(" l love you ");
    17. list.add(90);
    18. list.add(78);
    19. list.remove(2);
    20. list.remove(new Integer(58));
    21. //删除指定内容元素
    22. list.remove(" l love you");
    23. list.remove(1);
    24. System.out.println(list.size());
    25. //修改
    26. list.set(2, 1);
    27. //查询数据
    28. Object obj =list.get(0);
    29. System.out.println(list.get(0));
    30. list.get(2);
    31. //System.out.println(list.get(2));
    32. System.out.println(list);
    33. for (int i = 0; i < list.size(); i++) {
    34. System.out.println(list.get(i));
    35. }
    36. }
    37. }
    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. import java.util.Collection;
    4. import java.util.Iterator;
    5. public class Muster1 {
    6. public static void main(String[] args) {
    7. // 创建对象
    8. Collection collection =new ArrayList();
    9. collection.add("zhangshan1");
    10. collection.add("zhangsi2");
    11. collection.add("zhangshan3");
    12. collection.add("hubin");
    13. collection.add("i like you me to see you");
    14. //遍历fanxing
    15. /*
    16. Iterator iterator =collection.iterator();
    17. while (iterator.hasNext()){
    18. String element =(String)iterator.next();
    19. System.out.println(element);
    20. }
    21. */
    22. //改写代码
    23. //泛型Collection<String> collection =new ArrayList ();
    24. Iterator<String > iterator =collection.iterator();
    25. while (iterator.hasNext()){
    26. String element =(String)iterator.next();
    27. System.out.println(element);
    28. }
    29. }
    30. }
    1. package com.JavaBasicsDemo4;
    2. import java.util.HashSet;
    3. public class Muster3 {
    4. public static void main(String[] args) {
    5. HashSet<String> hashSet = new HashSet<String>();
    6. hashSet.add("BB<br>");
    7. hashSet.add("CCC");
    8. hashSet.add("DDDD");
    9. hashSet.add("EEEEE");
    10. hashSet.add("FFFFFFF");
    11. hashSet.add("GGGGGGGGG");
    12. hashSet.add("hhhhhhhhhhhhhh");
    13. System.out.println("hashSet集合的内容 :"+hashSet);
    14. }
    15. }
    1. package com.JavaBasicsDemo4;
    2. import java.util.HashSet;
    3. public class Muster4 {
    4. public static void main(String[] args) {
    5. // TODO Auto-generated method stub
    6. HashSet<Person> hashSet = new HashSet<>();
    7. //1
    8. Person p1 =new Person("shangshanA",18);
    9. Person p2 =new Person("shangshanB",19);
    10. Person p3 =new Person("shangshanC",20);
    11. Person p4 =new Person("shangshanD",20);
    12. Person p5 =new Person("shangshanE",22);
    13. Person p6 =new Person("shangshanF",20);
    14. //2
    15. Person p7 =new Person("shangshanA",18);
    16. Person p8=new Person("shangshanB",19);
    17. Person p9=new Person("shangshanC",20);
    18. Person p10 =new Person("shangshanD",20);
    19. Person p11 =new Person("shangshanE",22);
    20. Person p12 =new Person("shangshanF",20);
    21. //
    22. hashSet.add(p1);
    23. hashSet.add(p2);
    24. hashSet.add(p3);
    25. hashSet.add(p4);
    26. hashSet.add(p5);
    27. hashSet.add(p6);
    28. //
    29. hashSet.add(p7);
    30. hashSet.add(p8);
    31. hashSet.add(p9);
    32. hashSet.add(p10);
    33. hashSet.add(p11);
    34. hashSet.add(p12);
    35. System.out.println(hashSet);
    36. }
    37. }

    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. import java.util.Collection;
    4. import java.util.Iterator;
    5. public class Muster5 {
    6. public static void main(String[] args) {
    7. // lterator集合
    8. //创建对象
    9. Collection collection =new ArrayList();
    10. //
    11. collection.add("胡1");
    12. collection.add("胡琪琪");
    13. collection.add("胡文平");
    14. collection.add("胡丽萍");
    15. collection.add("胡生路");
    16. collection.add("胡一鸣");
    17. collection.add("胡子在");
    18. //
    19. if(collection.isEmpty()){
    20. System.out.println("集合 Collection为空");
    21. }else{
    22. System.out.println("必定不为空,元素个数");
    23. collection.size();
    24. }
    25. //遍历这个集合 okIterator
    26. Iterator iterator =collection.iterator();
    27. System.out.println("第一次遍历ok");
    28. while(iterator.hasNext()){ //遍历循化
    29. //获得集合元素
    30. String element=(String)iterator.next();
    31. System.out.println(element+" ");
    32. }
    33. //
    34. System.out.println("第二段遍历ok");
    35. Iterator iterator2 =collection.iterator();
    36. System.out.println("第二次遍历ok");
    37. while(iterator2.hasNext()){ //遍历循化
    38. //获得集合元素
    39. String element=(String)iterator2.next();
    40. System.out.println(element+" ");
    41. //从集合中删除上一次nec()方法返回值元素
    42. iterator2.remove();
    43. }
    44. System.out.println();
    45. //判断集合是否为空
    46. if(collection.isEmpty()){
    47. System.out.println("集合collection为空值");
    48. }
    49. //Collect<参数化类型>collection =new ArrayLIst< 参数化类型>();
    50. Collection<String>collection2 =new ArrayList< String>();
    51. collection.add("胡明明明");
    52. collection.add("小红坏里面");
    53. collection.add("小菲菲UI开");
    54. //bianli
    55. Iterator<String> iterator3 =collection.iterator();
    56. while(iterator3.hasNext()){
    57. String element=(String)iterator3.next();
    58. System.out.println(element+" ");
    59. }
    60. System.out.println();
    61. //
    62. System.out.println("l like zi you me to see you");
    63. }
    64. }

    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. import java.util.Collection;
    4. import java.util.Iterator;
    5. public class Muster6 {
    6. public static void main(String[] args) {
    7. Collection<String> list = new ArrayList<String>();
    8. list.add("a");
    9. list.add("b");
    10. list.add("c");
    11. list.add("d");
    12. list.add("e");
    13. list.add("f");
    14. Iterator<String> it = list.iterator();
    15. while (it.hasNext()) {
    16. String str = (String) it.next();
    17. System.out.println(str);
    18. for (int i = 0; i < list.size(); i++) {
    19. System.out.println(str);
    20. System.out.println(list);
    21. }
    22. }
    23. }
    24. }
    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. public class Muster7 {
    4. public static void main(String[] args) {
    5. ArrayList<String> list =new ArrayList<String>();
    6. list.add("a数组下标0"); //数组下标
    7. list.add("b数组下标1");
    8. list.add("c数组下标2");
    9. list.add("d数组下标3");
    10. list.add("e数组下标4");
    11. list.add("f数组下标5");
    12. int i=(int)(Math.random()*list.size());
    13. System.out.println("随机抽取数组的元素:"+list.get(i));
    14. for (int j = 0; j < list.size(); j++) {
    15. System.out.println(list.get(j));
    16. }
    17. list.remove(2);
    18. System.out.println("将数组下标为1的元素从数组中移除,元素为");
    19. for (int g = 0; g < list.size(); g++) {
    20. System.out.println(list.get(i));
    21. }
    22. }
    23. }
    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. import java.util.Collection;
    4. import java.util.Iterator;
    5. public class Muster9 {
    6. public static void main(String[] args) {
    7. //创建ArrayList类集合
    8. ArrayList<String> arrayList=new ArrayList<String>();
    9. //size(); 集合个数
    10. System.out.println("arrayList的初始化大小"+arrayList.size());
    11. arrayList.add("AAAA"); //0
    12. arrayList.add("BBBB"); //1
    13. arrayList.add("CCCC"); //2
    14. arrayList.add("DDDD"); //3
    15. arrayList.add("BBBBB");// 4
    16. arrayList.add("EEEEEE");// 5
    17. arrayList.add("BBBB");// 6
    18. System.out.println("last步添加元素后,arrayList的内容:"+arrayList);
    19. //插入
    20. arrayList.add(1,"A2");
    21. System.out.println("插入A2元素后。arrayList的内容:"+arrayList);
    22. //shangchu
    23. arrayList.remove(3);
    24. System.out.println("s删除定义D元su后,arrayList的内容"+arrayList);
    25. //indeof()cha
    26. System.out.println("arrayList第一次的元素:"+arrayList.lastIndexOf("BBBB"));
    27. //lastinderof()
    28. System.out.println("arrayList最后一次的元素:"+arrayList.lastIndexOf("BBBB"));
    29. //subList()取指定的集合
    30. java.util.List<String> newlist=arrayList.subList(0, 5);
    31. System.out.println("取指定的集合list的集合;"+newlist);
    32. System.out.println("=========================================");
    33. // lterator集合
    34. //创建对象
    35. Collection collection =new ArrayList();
    36. //
    37. collection.add("小明");
    38. collection.add("小红");
    39. collection.add("小开");
    40. collection.add("小里");
    41. collection.add("小陪");
    42. collection.add("小了");
    43. //
    44. if(collection.isEmpty()){
    45. System.out.println("集合 Collection为空");
    46. }else{
    47. System.out.println("必定不为空,元素个数");
    48. collection.size();
    49. }
    50. //遍历这个集合 okIterator
    51. Iterator iterator =collection.iterator();
    52. System.out.println("第一次遍历ok");
    53. while(iterator.hasNext()){ //遍历循化
    54. //获得集合元素
    55. String element=(String)iterator.next();
    56. System.out.println(element+" ");
    57. }
    58. //
    59. System.out.println("第二段遍历ok");
    60. Iterator iterator2 =collection.iterator();
    61. System.out.println("第二次遍历ok");
    62. while(iterator2.hasNext()){ //遍历循化
    63. //获得集合元素
    64. String element=(String)iterator2.next();
    65. System.out.println(element+" ");
    66. //从集合中删除上一次nec()方法返回值元素
    67. iterator2.remove();
    68. }
    69. System.out.println();
    70. //判断集合是否为空
    71. if(collection.isEmpty()){
    72. System.out.println("集合collection为空值");
    73. }
    74. //Collect<参数化类型>collection =new ArrayLIst< 参数化类型>();
    75. Collection<String>collection2 =new ArrayList< String>();
    76. collection.add("小明");
    77. collection.add("小红");
    78. collection.add("小开");
    79. //bianli
    80. Iterator<String> iterator3 =collection.iterator();
    81. while(iterator3.hasNext()){
    82. String element=(String)iterator3.next();
    83. System.out.println(element+" ");
    84. }
    85. System.out.println( );
    86. //
    87. System.out.println("");
    88. }
    89. }
    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. public class Muster10 {
    4. public static void main(String[] args) {
    5. // TODO Auto-generated method stub
    6. ArrayList list =new ArrayList();
    7. // 增加元素
    8. //创建学生对象 增加元素
    9. Student stu1 =new Student("AAAAAA",27);
    10. Student stu2 =new Student("BBB",21);
    11. Student stu3=new Student("CCCC",10);
    12. Student stu4 =new Student("DDDDD",20);
    13. Student stu5 =new Student("AAAAAA",27);
    14. Student stu6 =new Student("BBB",21);
    15. Student stu7=new Student("CCCC",10);
    16. Student stu8 =new Student("DDDDD",20);
    17. Student stu9 =new Student("AAAAAA",27);
    18. Student stu10 =new Student("BBB",21);
    19. Student stu11=new Student("CCCC",10);
    20. Student stu12 =new Student("DDDDD",20);
    21. list.add(stu1);
    22. list.add(stu2);
    23. list.add(stu3);
    24. list.add(stu4);
    25. list.add(stu5);
    26. list.add(stu6);
    27. list.add(stu7);
    28. list.add(stu8);
    29. list.add(stu9);
    30. list.add(stu10);
    31. list.add(stu11);
    32. list.add(stu12);
    33. //shengchu boolean remove (int index)
    34. list.remove(0);
    35. list.remove(10);
    36. //获取集合yuansu object get(int indx)
    37. System.out.println(list.get(0));
    38. System.out.println(list.get(3));
    39. //修改元素指定的值
    40. //public E set (int index ,E element )修改元素的值
    41. list.set(2, new Student ("nam",30));
    42. list.set(4, new Student ("namerteee",34));
    43. //集合个数 int size()
    44. int count =list.size();
    45. System.out.println("集合个数:"+count);
    46. //打印输出集合
    47. for (int i = 0; i < list.size(); i++) {
    48. System.out.println(list.get(i));
    49. }
    50. }
    51. }
    1. package com.JavaBasicsDemo4;
    2. import java.util.ArrayList;
    3. import java.util.Iterator;
    4. public class Muster11 {
    5. public static void main(String[] args) {
    6. ArrayList<String> list =new ArrayList <String>();
    7. list.add("AAAAAA");
    8. list.add("BAAAAA");
    9. list.add("AACAAA");
    10. list.add("AAADAA");
    11. list.add("AAAAEA");
    12. list.add("AAAAAF");
    13. //bianlidiyizhong for(){}
    14. //size()
    15. System.out.println("第一种111111111111111111111111forxunhuan:");
    16. for(int i=0;i<list.size();i++){
    17. //get() 读取数据
    18. System.out.println(list.get(i)+"");
    19. }
    20. System.out.println( );
    21. //bianlidierzhong
    22. System.out.println("dire22222222222222222222222zhongforeachxunhuanbianlijihe");
    23. for(String s :list){
    24. System.out.println(s+" ");
    25. }
    26. System.out.println();
    27. //bianlidishanzhong
    28. System.out.println("dishan333333333333333333333zhong");
    29. Iterator<String> it =list.iterator();
    30. System.out.println("diyizhongfangfA");
    31. while(it.hasNext()){
    32. System.out.println(it.next()+" ");
    33. }
    34. }
    35. }

    1. package com.JavaBasicsDemo4;
    2. import java.util.HashMap;
    3. import java.util.Iterator;
    4. import java.util.Map;
    5. import java.util.Set;
    6. public class Muster12 {
    7. public static void main(String[] args) {
    8. //创建Map集合,实力化HashMap累类
    9. HashMap<String,String> map =new HashMap<String,String>();
    10. map.put("Tom","Javachengxusheji" );
    11. map.put("John", "MYSQLshujukuan");
    12. map.put("JSP", "JSPAaili");
    13. map.put("Kou", "PS");
    14. System.out.println("map集合的内容:"+map);
    15. System.out.println("mapjihedaxiao:"+map.size());
    16. //给定key的值map的集合查着对应的value
    17. //如果没有反回null
    18. System.out.println("在定义中找到John教师的课程"+map.get("John"));
    19. System.out.println("在定义中找到sdo教师的课程"+map.get("sdo"));
    20. //增加重符的key:vvvv
    21. map.put("vvvv","MYSQLshujukuan");
    22. System.out.println("增加重符的key后,map的内容"+map);
    23. System.out.println("增加重符的key后,map的大小"+map.size());
    24. //判断是否包含指定到key
    25. System.out.println("map集合是否包含Tomjiaoshi:"+map.containsKey("Tom"));
    26. //判断是否包含指定的value
    27. System.out.println("map的集合中是否包含unix操作系统课程:"
    28. +map.containsValue("unix操作系统课程"));
    29. System.out.println("====================================");
    30. System.out.println("====================================");
    31. System.out.println("====================================");
    32. System.out.println("====================================");
    33. System.out.println("====================================");
    34. //遍历 notone
    35. Set<String> keySet =map.keySet();
    36. Iterator<String> it =keySet.iterator();
    37. while(it.hasNext()){
    38. String key =it.next();
    39. String value =map.get(key);
    40. System.out.println(key+":"+value+" ");
    41. System.out.println();
    42. }
    43. System.out.println("====================================");
    44. System.out.println("====================================");
    45. System.out.println("====================================");
    46. System.out.println("====================================");
    47. System.out.println("====================================");
    48. //遍历第二种方式
    49. Set<Map.Entry<String,String>> entrySet=map.entrySet();
    50. Iterator<Map.Entry<String,String>> it2 =entrySet.iterator();
    51. while(it2.hasNext()){
    52. Map.Entry<String,String> entry =it2.next();
    53. String key =entry.getKey();
    54. String value =entry.getValue();
    55. System.out.println(key+":"+value+" ");
    56. }
    57. System.out.println();
    58. }
    59. }
    1. package com.JavaBasicsDemo4;
    2. import java.io.BufferedReader;
    3. import java.io.File;
    4. import java.io.FileNotFoundException;
    5. import java.io.FileReader;
    6. import java.util.HashMap;
    7. import java.util.Scanner;
    8. public class Muster13 {
    9. public static void main(String[] args) throws FileNotFoundException {
    10. // TODO Auto-generated method stub
    11. HashMap<String, String> map =new HashMap<String,String>();
    12. map.put("360102", "AAAAAAA");
    13. map.put("360321", "BBBBBBB");
    14. map.put("360481", "CCCCCCC");
    15. map.put("360429","自由的梦想");
    16. map.put("350211", "DDDDDDD");
    17. map.put("343987", "EEEEEEE");
    18. map.put("360014", "FFFFFFF");
    19. map.put("360897", "GGGGGGG");
    20. map.put("360015", "HHHHHHH");
    21. map.put("360456", "IIIIIII");
    22. map.put("360128", "JJJJJJJ");
    23. map.put("364258", "KKKKKKK");
    24. //创建scanner
    25. Scanner sc=new Scanner(System.in);
    26. System.out.println("输入身份证号6位ok");
    27. String idNum=sc.next();
    28. if(map.containsKey(idNum)){
    29. System.out.println("你的归属地:"+map.get(idNum));
    30. }else{
    31. System.out.println("没查到,请重输入ok");
    32. }
    33. File file = new File("E:AAAAAAA/北京市.docx");
    34. BufferedReader br =new BufferedReader(new FileReader(file));
    35. String str =" ";
    36. HashMap<String, String> mapt =new HashMap<String,String>();
    37. mapt.put("北京市", "110000");
    38. map.put("河北省","130000");
    39. mapt.put("天津市", "120000");
    40. mapt.put("内蒙古自治区","150000");
    41. mapt.put("辽宁省","210000");
    42. mapt.put("吉林省 黑龙江省", "220000230000");
    43. mapt.put("上海市江苏省", "310000320000");
    44. mapt.put("浙江省 安徽省", "330000340000");
    45. mapt.put("福建省江西省","360000350000");
    46. mapt.put("山东省河南省", "370000410000");
    47. mapt.put("湖北省湖南省", "420000430000");
    48. mapt.put("广东省广西壮族自治区", "440000450000");
    49. mapt.put("海南省重庆市", "460000500000");
    50. mapt.put("四川省 贵州省", "510000520000");
    51. mapt.put("云南省西藏自治区", "530000540000");
    52. mapt.put("陕西省 甘肃省", "610000620000");
    53. mapt.put("青海省 宁夏回族自治区","630000640000");
    54. mapt.put("新疆维吾尔自治台湾省", "650000(886)|710000");
    55. mapt.put("香港特别行政区"," (852)|810000");
    56. mapt.put("澳门特别行政区","(853)|820000");
    57. Scanner sct=new Scanner(System.in);
    58. System.out.println("输入你的归属身份地");
    59. String f=sct.next();
    60. if(map.containsKey(f)){
    61. System.out.println("你的身份证last6位是?:"+mapt.get(f));
    62. }else{
    63. System.out.println("没查到,请重输入ok");
    64. }
    65. }
    66. }
  • 相关阅读:
    【洛谷 P1591】阶乘数码 题解(模拟+高精度)
    GeneralizedRCNN:features = OrderedDict([(“0“, features)])
    鼠标悬停效果九
    Kafka跨集群数据镜像解决方案MirrorMaker及其替代工具
    c++ this
    Semtech GS2971AIBE3 3G SDI 接收器
    Sql server 最大并行度配置
    SpringCloud Alibaba-Sentinel保姆级教程
    华为机试题解析020:数据分类处理(python)
    【备忘】清理Office缓存
  • 原文地址:https://blog.csdn.net/qq_56248592/article/details/125571885