关于findAll和removeAllElement不会写

来源:2-5 包含,搜索和删除

爱吃肉片的哈利

2018-05-22

findAll是不是通过一个数组接收索引值?刚学完java基础路径上这门课感觉有点吃力

写回答

2回答

liuyubobobo

2018-05-23

findAll可以涉及成返回一个ArrayList,包含所有的承载元素e的索引:)


removeAllElements则删除所有当前数组中等于元素e的元素。可以通过反复调用removeElement完成,但要对当前数组进行多次遍历;也可以在一次遍历中删除所有元素e,在具体实现会有一些小难度,可以参考这个问答中的讨论:https://coding.imooc.com/learn/questiondetail/54366.html


如果刚刚学习完Java基础,学习这个课程可能会有一点吃力。一般在计算机专业的学习中,语言基础是大一的内容;数据结构是大二的内容。对数据结构的学习,首先要基于对语言本身有相当程度的了解和熟悉,甚至要有一定的代码量后,进而学习的一个内容。不过也不用太害怕,对于大多数同学,如果是第一次接触数据结构,都会觉得有一定难度的,同时,学习数据结构的过程中,涉及的代码量和代码的逻辑难度,也会比学习语言基础的时候上升一个阶梯。静下心来理解每一段逻辑,争取做到头脑中有抽象的逻辑过程,自己可以将这些逻辑过程转成代码的程度。当学完整个数据结构以后,一般代码水平和对计算机程序的理解,都会有一个巨大的上升的:)


加油!

2
2
liuyubobobo
回复
爱吃肉片的哈利
可行:)对于removeAllElements,可以不使用findAll,传入的参数e就是要删除的元素:)也可以自己写测试用例验证一下自己逻辑的正确性:)
2018-05-23
共2条回复

yarw

2018-10-27

我写个 removeElements 如下:

1,查找元素的索引

2.判断索引是否合法

3.删除元素

4,再查找元素索引

5重复 3,4两步

6 返回是否成功


public boolean removeElements(int item){

   int index = find(item);
   if(index > -1){

       do{
           remove(index);
           index = find(item);

       }while(index > -1);

       return true;
   }

   return false;
}

 

1
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程