Java ArrayList的等价物是什么<;E>;在戈兰?
在我的特定用例中,我想知道以下Java代码将如何在Go中实现-Java ArrayList的等价物是什么<;E>;在戈兰?,java,arraylist,go,Java,Arraylist,Go,在我的特定用例中,我想知道以下Java代码将如何在Go中实现- class Channel { public String name; public Channel(){} } ArrayList<Channel> channels = new ArrayList<Channel>(); 我只需要知道ArrayList在Go中如何工作使用切片: var channels []Channel // an empty list channels = ap
class Channel {
public String name;
public Channel(){}
}
ArrayList<Channel> channels = new ArrayList<Channel>();
我只需要知道ArrayList在Go中如何工作使用切片:
var channels []Channel // an empty list
channels = append(channels, Channel{name:"some channel name"})
此外,您的频道声明稍有偏差,您需要“type”关键字:
type Channel struct {
name string
}
下面是一个完整的示例:
有关更多信息,请参阅
还有go tour(tour.golang.org)和语言规范(golang.org/ref/spec,参见#切片类型、#切片和#附加和#复制切片)。使用切片
有关常用切片习惯用法的详细信息,请参阅。这很有效
//make the object Channel
type Channel struct {
name string
}
// a empty list
var channels = []*Channel {}
//and finally add this object
channels = append(channels, Channel{name:"juan carlos anez mejias"})
a=append(a[:i],a[i+1:]…)
如果您只想从前面或后面删除一个,那么就更容易了:a=a[1:]或a=a[:len(a)-2]Mostafa允许您从切片中间删除一个。最好的一点是,在这些情况下,append甚至不需要调整切片的大小,因此它只是一个就地修改。如果不关心列表的顺序,元素删除可以是固定时间。从末尾提取元素,将其复制到要删除的元素索引中,然后将切片长度减少1。另请参见golang中的.Does append()以摊销常量时间运行,如ArrayList.add()?
//make the object Channel
type Channel struct {
name string
}
// a empty list
var channels = []*Channel {}
//and finally add this object
channels = append(channels, Channel{name:"juan carlos anez mejias"})