From 5f7b942d1fa1a6adc6ed26e85b52968a907172e9 Mon Sep 17 00:00:00 2001 From: godotg Date: Fri, 23 Sep 2022 21:13:03 +0800 Subject: [PATCH] =?UTF-8?q?perf[list]:=20=E7=BB=9F=E4=B8=80=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zfoo/protocol/buffer/ByteBufUtils.java | 16 +++---- ...SizeStringList.java => FixedSizeList.java} | 44 ++++++++++--------- ...eanList.java => FixedSizeListBoolean.java} | 4 +- ...ubleList.java => FixedSizeListDouble.java} | 4 +- ...FloatList.java => FixedSizeListFloat.java} | 4 +- ...zeLongList.java => FixedSizeListLong.java} | 4 +- ...ShortList.java => FixedSizeListShort.java} | 4 +- .../zfoo/protocol/collection/ListTest.java | 4 +- 8 files changed, 43 insertions(+), 41 deletions(-) rename protocol/src/main/java/com/zfoo/protocol/collection/{FixedSizeStringList.java => FixedSizeList.java} (70%) rename protocol/src/main/java/com/zfoo/protocol/collection/{FixedSizeBooleanList.java => FixedSizeListBoolean.java} (97%) rename protocol/src/main/java/com/zfoo/protocol/collection/{FixedSizeDoubleList.java => FixedSizeListDouble.java} (97%) rename protocol/src/main/java/com/zfoo/protocol/collection/{FixedSizeFloatList.java => FixedSizeListFloat.java} (97%) rename protocol/src/main/java/com/zfoo/protocol/collection/{FixedSizeLongList.java => FixedSizeListLong.java} (97%) rename protocol/src/main/java/com/zfoo/protocol/collection/{FixedSizeShortList.java => FixedSizeListShort.java} (97%) diff --git a/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java b/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java index 3ce7db6a..c0c676e7 100644 --- a/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java @@ -418,9 +418,9 @@ public abstract class ByteBufUtils { public static List readPacketList(ByteBuf byteBuf, IProtocolRegistration protocolRegistration) { var length = readInt(byteBuf); - var list = (List) CollectionUtils.newFixedList(length); + var list = new FixedSizeList(length); for (var i = 0; i < length; i++) { - list.add((IPacket) protocolRegistration.read(byteBuf)); + list.set(i, protocolRegistration.read(byteBuf)); } return list; } @@ -753,7 +753,7 @@ public abstract class ByteBufUtils { public static List readBooleanList(ByteBuf byteBuf) { var length = readInt(byteBuf); - var list = new FixedSizeBooleanList(length); + var list = new FixedSizeListBoolean(length); for (var i = 0; i < length; i++) { list.set(i, readBoolean(byteBuf)); } @@ -917,7 +917,7 @@ public abstract class ByteBufUtils { public static List readShortList(ByteBuf byteBuf) { var length = readInt(byteBuf); - var list = new FixedSizeShortList(length); + var list = new FixedSizeListShort(length); for (var i = 0; i < length; i++) { list.set(i, readShort(byteBuf)); } @@ -1075,7 +1075,7 @@ public abstract class ByteBufUtils { public static List readLongList(ByteBuf byteBuf) { var length = readInt(byteBuf); - var list = new FixedSizeLongList(length); + var list = new FixedSizeListLong(length); for (var i = 0; i < length; i++) { list.set(i, readLong(byteBuf)); } @@ -1161,7 +1161,7 @@ public abstract class ByteBufUtils { public static List readFloatList(ByteBuf byteBuf) { var length = readInt(byteBuf); - var list = new FixedSizeFloatList(length); + var list = new FixedSizeListFloat(length); for (var i = 0; i < length; i++) { list.set(i, readFloat(byteBuf)); } @@ -1247,7 +1247,7 @@ public abstract class ByteBufUtils { public static List readDoubleList(ByteBuf byteBuf) { var length = readInt(byteBuf); - var list = new FixedSizeDoubleList(length); + var list = new FixedSizeListDouble(length); for (var i = 0; i < length; i++) { list.set(i, readDouble(byteBuf)); } @@ -1305,7 +1305,7 @@ public abstract class ByteBufUtils { public static List readStringList(ByteBuf byteBuf) { var length = readInt(byteBuf); - var list = new FixedSizeStringList(length); + var list = new FixedSizeList(length); for (var i = 0; i < length; i++) { list.set(i, readString(byteBuf)); } diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeStringList.java b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeList.java similarity index 70% rename from protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeStringList.java rename to protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeList.java index a20d95b4..ae14e502 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeStringList.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeList.java @@ -18,15 +18,17 @@ import java.util.List; import java.util.ListIterator; /** + * 初始化就确定了大小的List,不可添加和删除,但是可以set,就像一个数组一样 + * * @author godotg * @version 3.0 */ -public class FixedSizeStringList implements List { +public class FixedSizeList implements List { - private final String[] array; + private final Object[] array; - public FixedSizeStringList(int initialCapacity) { - this.array = new String[initialCapacity]; + public FixedSizeList(int initialCapacity) { + this.array = new Object[initialCapacity]; } @Override @@ -40,15 +42,15 @@ public class FixedSizeStringList implements List { } @Override - public String get(int index) { - return array[index]; + public E get(int index) { + return (E) array[index]; } @Override - public String set(int index, String ele) { + public E set(int index, E ele) { var old = array[index]; array[index] = ele; - return old; + return (E) old; } @Override @@ -83,42 +85,42 @@ public class FixedSizeStringList implements List { } @Override - public Iterator iterator() { - return ArrayUtils.toList(array).iterator(); + public Iterator iterator() { + return (Iterator) ArrayUtils.toList(array).iterator(); } @Override - public ListIterator listIterator() { - return ArrayUtils.toList(array).listIterator(); + public ListIterator listIterator() { + return (ListIterator) ArrayUtils.toList(array).listIterator(); } @Override - public ListIterator listIterator(int index) { - return ArrayUtils.toList(array).listIterator(index); + public ListIterator listIterator(int index) { + return (ListIterator) ArrayUtils.toList(array).listIterator(index); } @Override - public List subList(int fromIndex, int toIndex) { - return ArrayUtils.toList(array).subList(fromIndex, toIndex); + public List subList(int fromIndex, int toIndex) { + return (List) ArrayUtils.toList(array).subList(fromIndex, toIndex); } @Override - public boolean add(String e) { + public boolean add(E e) { throw new UnsupportedOperationException(); } @Override - public void add(int index, String element) { + public void add(int index, E element) { throw new UnsupportedOperationException(); } @Override - public boolean addAll(Collection collection) { + public boolean addAll(Collection collection) { throw new UnsupportedOperationException(); } @Override - public boolean addAll(int index, Collection collection) { + public boolean addAll(int index, Collection collection) { throw new UnsupportedOperationException(); } @@ -128,7 +130,7 @@ public class FixedSizeStringList implements List { } @Override - public String remove(int index) { + public E remove(int index) { throw new UnsupportedOperationException(); } diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeBooleanList.java b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListBoolean.java similarity index 97% rename from protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeBooleanList.java rename to protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListBoolean.java index 231de816..f05def49 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeBooleanList.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListBoolean.java @@ -21,11 +21,11 @@ import java.util.ListIterator; * @author godotg * @version 3.0 */ -public class FixedSizeBooleanList implements List { +public class FixedSizeListBoolean implements List { private final boolean[] array; - public FixedSizeBooleanList(int initialCapacity) { + public FixedSizeListBoolean(int initialCapacity) { this.array = new boolean[initialCapacity]; } diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeDoubleList.java b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListDouble.java similarity index 97% rename from protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeDoubleList.java rename to protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListDouble.java index 9b995831..5978c66f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeDoubleList.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListDouble.java @@ -21,11 +21,11 @@ import java.util.ListIterator; * @author godotg * @version 3.0 */ -public class FixedSizeDoubleList implements List { +public class FixedSizeListDouble implements List { private final double[] array; - public FixedSizeDoubleList(int initialCapacity) { + public FixedSizeListDouble(int initialCapacity) { this.array = new double[initialCapacity]; } diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeFloatList.java b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListFloat.java similarity index 97% rename from protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeFloatList.java rename to protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListFloat.java index c831a82d..a7b75b2a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeFloatList.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListFloat.java @@ -21,11 +21,11 @@ import java.util.ListIterator; * @author godotg * @version 3.0 */ -public class FixedSizeFloatList implements List { +public class FixedSizeListFloat implements List { private final float[] array; - public FixedSizeFloatList(int initialCapacity) { + public FixedSizeListFloat(int initialCapacity) { this.array = new float[initialCapacity]; } diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeLongList.java b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListLong.java similarity index 97% rename from protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeLongList.java rename to protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListLong.java index dcae016e..a8219f40 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeLongList.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListLong.java @@ -21,11 +21,11 @@ import java.util.ListIterator; * @author godotg * @version 3.0 */ -public class FixedSizeLongList implements List { +public class FixedSizeListLong implements List { private final long[] array; - public FixedSizeLongList(int initialCapacity) { + public FixedSizeListLong(int initialCapacity) { this.array = new long[initialCapacity]; } diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeShortList.java b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListShort.java similarity index 97% rename from protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeShortList.java rename to protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListShort.java index 74a4e5bc..115ea5c4 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeShortList.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/FixedSizeListShort.java @@ -21,11 +21,11 @@ import java.util.ListIterator; * @author godotg * @version 3.0 */ -public class FixedSizeShortList implements List { +public class FixedSizeListShort implements List { private final short[] array; - public FixedSizeShortList(int initialCapacity) { + public FixedSizeListShort(int initialCapacity) { this.array = new short[initialCapacity]; } diff --git a/protocol/src/test/java/com/zfoo/protocol/collection/ListTest.java b/protocol/src/test/java/com/zfoo/protocol/collection/ListTest.java index 58d0a705..bad50c8d 100644 --- a/protocol/src/test/java/com/zfoo/protocol/collection/ListTest.java +++ b/protocol/src/test/java/com/zfoo/protocol/collection/ListTest.java @@ -34,8 +34,8 @@ public class ListTest { } @Test - public void testFixedSizeStringList() { - var list = new FixedSizeStringList(3); + public void testFixedSizeList() { + var list = new FixedSizeList(3); list.set(0, "1"); list.set(1, "2"); list.set(2, "3");