1
0
mirror of https://github.com/charlienet/go-mixed.git synced 2025-07-18 00:22:41 +08:00
This commit is contained in:
2022-11-21 16:18:54 +08:00
parent 1f8789e7eb
commit 04aecd4abc
3 changed files with 37 additions and 16 deletions

View File

@ -16,13 +16,32 @@ type ArrayList[T any] struct {
func NewArrayList[T any](elems ...T) *ArrayList[T] {
minCap := minCapacity
size := len(elems)
for minCap < size {
minCap <<= 1
}
var tail int = size
var buf []T
return &ArrayList[T]{
buf: buf,
minCap: minCap,
list: list[T]{locker: locker.EmptyLocker},
if len(elems) > 0 {
buf = make([]T, minCap)
copy(buf, elems)
}
l := &ArrayList[T]{
list: list[T]{size: size, locker: locker.EmptyLocker},
buf: buf,
tail: tail,
minCap: minCap,
}
// for _, v := range elems {
// l.PushBack(v)
// }
return l
}
func (l *ArrayList[T]) PushFront(v T) {