6-2 jmu-Java-05集合-List中指定元素的删除 (25 分)

版权声明:欢迎转载,但转载时请注明原文地址 https://blog.csdn.net/weixin_42110638/article/details/85730558

6-2 jmu-Java-05集合-List中指定元素的删除 (25 分)

编写以下两个函数

/*以空格(单个或多个)为分隔符,将line中的元素抽取出来,放入一个List*/
public static List<String> convertStringToList(String line) 
/*在list中移除掉与str内容相同的元素*/
public static void remove(List<String> list, String str)

裁判测试程序:

public class Main {

    /*covnertStringToList函数代码*/   
		
    /*remove函数代码*/
		
     public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            List<String> list = convertStringToList(sc.nextLine());
            System.out.println(list);
            String word = sc.nextLine();
            remove(list,word);
            System.out.println(list);
        }
        sc.close();
    }

}

样例说明:底下展示了4组测试数据。

输入样例

1 2 1 2 1 1 1 2
1
11 1 11 1 11
11
2 2 2 
1
1   2 3 4 1 3 1
1

输出样例

[1, 2, 1, 2, 1, 1, 1, 2]
[2, 2, 2]
[11, 1, 11, 1, 11]
[1, 1]
[2, 2, 2]
[2, 2, 2]
[1, 2, 3, 4, 1, 3, 1]
[2, 3, 4, 3]

作者: 郑如滨

单位: 集美大学

时间限制: 400 ms

内存限制: 64 MB

代码长度限制: 16 KB

思路:

两个函数都有坑

第一个函数:

第一怎么分,split,那多个空格呢?参考这篇博客吧:https://blog.csdn.net/weixin_42110638/article/details/85333080

第二:怎么把String数组放到List中,可以先把String数组转换为List,方法看代码,之后直接new一个ArrayList就完事了

第二个函数:

想清楚其实不难,但是有个事你得注意,啥事看代码吧

答案:

public static List<String> convertStringToList(String line) 
    {
    	String[] ss = line.split("\\s+");//String的split方法支持正则表达式
    	List<String> list = new ArrayList<String>(Arrays.asList(ss));//将数组转化为list
    	return list;
    }
    public static void remove(List<String> list, String str)
    {
    		if(!list.contains(str))
    			return;
    		else
    		{
    			for(int i = 0;i < list.size();i++)
    			{
    				if(str.contains(list.get(i)))
    				{
    					list.remove(list.get(i));
    					i--;//这是难度,删除的话必须加这句,否则你可能会出现跳着删除的情况,如样例一
    				}
    					
    			}
    		}
    }

猜你喜欢

转载自blog.csdn.net/weixin_42110638/article/details/85730558