头歌实践-Java学习List集合与Map集合

本文详细介绍了Java中的List集合(ArrayList和LinkedList)的使用,包括增删改查操作,以及HashMap的创建和基本操作。同时涉及到了Java面试题中关于这些集合类的常见问题和应用场景。
摘要由CSDN通过智能技术生成

5.添加两个字符串:hello,educoder 至集合中;

6.修改集合的第三个元素,改为:list;

7.打印集合。

相关知识
List 集合

List 集合用于存储有序的、可以重复的元素,因此我们可以通过索引来访问、遍历元素。它主要有 ArrayList 和 LinkedList 两个实现类,本实训将介绍 ArrayList 集合。

ArrayList 集合

ArrayList 是 List 集合的实现类,它的底层数据结构是数组,因此它具有查询快,增删慢的特点。

创建 ArrayList 集合

// 导入相关类

import java.util.ArrayList;

import java.util.List;

public class ExcTest {   

    public static void main(String[] args)  {  

        // 创建ArrayList集合   

        List list=new ArrayList<String>(); 

    }  

}



可以看到创建 ArrayList 集合时使用的是父类的引用指向子类对象,这种方式可以大大的提高程序的可扩展性

ArrayList 集合的增删改查

增删改查示例:


 public static void main(String[] args)  {     

     // 创建ArrayList集合       

     List<String> list=new ArrayList<>();   

     // 使用add()方法增加元素        

     list.add("list");     

     // 在最新位置添加指定元素      

     list.add(1,"hello");     

     // 在指定位置添加元素       

     list.add(2,"java");    

     // 在指定位置添加元素        

     System.out.println(list);       

     // 使用get()方法获取指定索引处元素,索引值从0开始  

     String s = list.get(0);       

     System.out.println(s);        

     // 使用set()方法修改指定索引位置的元素值   

     list.set(1,"hi");      

     System.out.println(list);   

     // 使用remove()方法删除指定元素       

     list.remove(0);    

     // 删除指定索引的元素    

     list.remove("hi");   

     // 删除指定元素       

     System.out.print(list);  

 }



执行结果:


[list, hello, java]

list

[list, hi, java]

[java]



遍历 ArrayList

遍历集合有三种方式: 1.使用迭代器遍历;


  public static void main(String[] args)  {     

      // 创建ArrayList集合       

      List<String> list=new ArrayList<>();  

      // 使用add()方法添加元素       

      list.add("list");      

      list.add(1,"hello");       

      list.add(2,"java");      

      list.add("java");       

      // 通过迭代器遍历集合       

      Iterator<String> iterator = list.iterator();   

      while(iterator.hasNext()){           

          System.out.println(iterator.next());  

      }  

  }



2.使用 for each 遍历;


 public static void main(String[] args)  {    

     // 创建ArrayList集合     

     List<String> list=new ArrayList<>();    

     // 使用add()方法添加元素        

     list.add("list");        

     list.add(1,"hello");      

     list.add(2,"java");      

     list.add("java");      

     // 通过foreach遍历集合    

     for(String s:list){    

         System.out.println(s);    

     }        

 }



3.使用 size() 方法获取集合长度,配合 for 循环遍历集合。


 public static void main(String[] args)  {     

     // 创建ArrayList集合      

     List<String> list=new ArrayList<>();      

     // 使用add()方法添加元素     

     list.add("list");      

     list.add(1,"hello");      

     list.add(2,"java");       

     list.add("java");       

     // 通过 size() 方法遍历集合    

     for(int x=0;x<list.size();x++){   

         System.out.println(list.get(x));    

     }      

 }



以上三种方式执行结果:


	list

    hello

    java

    java



编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,创建 ArrayList 集合并使用它的增删改查方法,具体要求如下:

  • 接收给定的一行字符串(如:32 rfsd fwq g3r3qt t3q4t。);

  • 通过空格(一个)切割字符串;

  • 创建一个 ArrayList 集合;

  • 将切割后的字符串元素添加至集合中;

  • 删除集合的第一个和最后一个元素;

  • 添加两个字符串:hello,educoder 至集合中;

  • 修改集合的第三个元素,改为:list;

  • 打印集合。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例: 测试输入:


32 rfsd fwq g3r3qt t3q4t qt ta



预期输出:


[rfsd, fwq, list, t3q4t, qt, hello, educoder]



参考代码

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;



public class CollTest {

    public static void main(String[] args) {

        // 请在Begin-End间编写代码

        /********** Begin **********/

        // 第一步:接收给定的一行字符串

        Scanner scan=new Scanner(System.in);

        String strings=scan.nextLine();

        // 第二步:切割字符串

        String []str=strings.split(" ");

        // 第三步:创建集合

        List<String> list=new ArrayList<String>();

        // 第四步:往集合中添加元素

        for(String s:str) {

        	list.add(s);

        }

        // 第五步:删除第一个元素和最后一个元素

        

        int index=list.size()-1;

        list.remove(index);

        if(!list.isEmpty()) {

        	list.remove(0);

        }

        

        

        // 第六步:往集合中添加hello和educoder

        list.add("hello");

        list.add("educoder");

        // 第七步:修改集合中第三个元素为list

        if(list.size()>=3) {

            list.set(2, "list");

        }

        // 第八步:打印集合

        System.out.println(list);

        scan.close();

        /********** End **********/



    }

}





学习-Java集合类之List的LinkedList之特有方法的使用


任务描述

本关任务:替换 LinkedList 集合中的首尾元素。

相关知识

List 集合主要有 ArrayList 和 LinkedList 两个实现类,本实训将介绍 LinkedList 集合。

什么是 LinkedList集合

LinkedList 是 List 集合的实现类,它的底层数据结构是链表,因此它具有查询慢,增删快的特点。

创建 LinkedList 集合

使用以下代码即可创建 LinkedList 集合。


import java.util.LinkedList;

public class tt {    

    public static void main(String[] args) {    

        // 创建存储字符串的LinkedList集合    

        LinkedList<String> strings = new LinkedList<>();  

    }

}



LinkedList 集合的方法

LinkedList 集合的增删改查方法和 ArrayList 集合是一样的,以下是它特有的方法:

| 方法名 | 说明 |

| — | — |

| addFirst(Object obj) | 在集合第一位添加一个元素 |

| addLast(Object obj) | 在集合最后一位添加一个元素 |

| getFirst() | 得到集合第一位的元素 |

| getLast() | 得到集合的最后一位元素 |

| removeFirst() | 删除集合的第一个元素 |

| removeLast() | 删除集合的最后一个元素 |

特有方法使用示例:


 public static void main(String[] args) {    

     // 创建存储字符串的集合      

     LinkedList<String> list = new LinkedList<>();  

     // 添加元素      

     list.add("gt");   

     list.add("hello");   

     System.out.println(list);   

     // 在集合第一位添加一个元素  

     list.addFirst("first");   

     System.out.println(list);      

     // 得到集合的第一个元素      

     String first = list.getFirst();   

     System.out.println(first);      

     // 删除集合的最后一个元素     

     list.removeLast();       

     System.out.println(list); 

 }



执行结果:


[gt, hello][first, gt, hello]first[first, gt]



编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,具体要求如下:

  • 接收给定的一行字符串(如:hello,hi,ask);

  • 根据英文逗号切割字符串,把切割后的元素添加进 LinkedList 集合;

  • 使用 LinkedList 的特殊方法将首尾元素都替换为 aa;

  • 输出替换后的字符串。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例: 测试输入:


hello,hi,ask



预期输出:


[aa,hi,aa]



参考代码



import java.util.LinkedList;

import java.util.Scanner;

public class CollTest {



    public static void main(String[] args) {



        // 请在Begin-End间编写代码

        /********** Begin **********/

        // 第一步:接收给定的一行字符串

    	Scanner scanner =new Scanner(System.in);

    	String string=scanner.nextLine();

        // 第二步:切割字符串

    	String []str=string.split(",");

        // 第三步:创建集合

    	LinkedList<String> list=new LinkedList<String>();

        // 第四步:将切割后的元素添加进集合

    	for(String s:str) {

    		list.add(s);

    	}

        // 第五步:替换首尾元素

    	String s2="aa";

    	list.removeFirst();

    	list.addFirst(s2);

    	list.removeLast();

    	list.addLast(s2);

        // 第六步:打印集合

    	System.out.println(list);

    	scanner.close();

        /********** End **********/

    }

}





学习-Java集合类之Map的HashMap之常用方法的使用

任务描述

本关任务:使用 HashMap 集合操作菜单。

相关知识
什么是 HashMap

HashMap 是 Map 接口的实现类,它存储的内容是键值对(key-value)映射,其中 key、value 都可以为 null。HashMap 是无序的,即被存入到 HashMap 中的元素,在遍历 HashMap 时,其输出是无序的。

创建 HashMap 集合

使用以下代码即可创建一个 HashMap 集合。


public static void main(String[] args) {   

    // 创建 HashMap 集合,key 存储字符串类型,value 存储整数类型   

    Map<String, Integer> hashMap = new HashMap<>(); 

}



最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

image

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

image

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

学习-Java集合类之Map的HashMap之常用方法的使用

任务描述

本关任务:使用 HashMap 集合操作菜单。

相关知识
什么是 HashMap

HashMap 是 Map 接口的实现类,它存储的内容是键值对(key-value)映射,其中 key、value 都可以为 null。HashMap 是无序的,即被存入到 HashMap 中的元素,在遍历 HashMap 时,其输出是无序的。

创建 HashMap 集合

使用以下代码即可创建一个 HashMap 集合。


public static void main(String[] args) {   

    // 创建 HashMap 集合,key 存储字符串类型,value 存储整数类型   

    Map<String, Integer> hashMap = new HashMap<>(); 

}



最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

[外链图片转存中…(img-tM82LPFu-1714676084520)]

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-l5qh6yjn-1714676084520)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值