怎么删除Array里面指定元素(或者Object)

怎么删除Array里面指定元素(或者Object),如下所示,如果我不知道A1~A5在a中的顺序,删除A3,怎么删除?或者有没有其它方式(不是Array),能删除指定元素。

mutable struct A
    a

    function A(a)
        new(a)
    end
end

a=Array{A,1}(undef,0)
A1=A(1)
A2=A(2)
A3=A(3)
A4=A(4)
A5=A(5)

push!(a, A1)
push!(a, A2)
push!(a, A3)
push!(a, A4)
push!(a, A5)

:upside_down_face::upside_down_face::upside_down_face::upside_down_face::upside_down_face::upside_down_face:非常感谢!

功能不完善,提供的途径不方便

QQ%E5%9B%BE%E7%89%8720180827160025
对于删除N个只需要在逻辑索引前加个循环

谢谢你的回复,我不是要删除索引处值,要删除Object,可以参考一下一楼的回复,或者用Dict

filter!(x->x!==A3, a)

非常感谢!!学习了!!要是删除结果能返回boolean类型就好了:joy:

是像matlab一样a==A3,得到[0,0,1,0,0]矩阵?
如果是这样的话就用map(x -> x !== A3, a)啊!

这未免有点a麻烦了,返回值我先用

 length(a) == length(filter!(x->x!==A3, a))

来判断吧,不知道复杂度和java的 remove 差多少,不妥之处希望有人指出。