Java 从自定义arraylist Implementation中删除项,而不删除。删除
我正在处理一个自定义的Java 从自定义arraylist Implementation中删除项,而不删除。删除,java,arrays,arraylist,data-structures,Java,Arrays,Arraylist,Data Structures,我正在处理一个自定义的ArrayList实现,我有一个方法,在这个方法中,我尝试从数组(如E[]元素)中按条件删除一个项。通过执行以下操作初始化阵列: ["chicken", "hippo"] String[]contents={“鸡肉”、“河马”、“山羊”}; ArrayI newarray=新的ArrayI(内容); newarray.chooser(new LongChooser()); 它应该删除长度小于等于4的单词,并返回如下数组: [&qu
ArrayList
实现,我有一个方法,在这个方法中,我尝试从数组(如E[]
元素)中按条件删除一个项。通过执行以下操作初始化阵列:
["chicken", "hippo"]
String[]contents={“鸡肉”、“河马”、“山羊”};
ArrayI newarray=新的ArrayI(内容);
newarray.chooser(new LongChooser());
它应该删除长度小于等于4的单词,并返回如下数组:
["chicken", "hippo"]
我尝试不使用任何内置方法,如remove()
,clone()
,arraycopy()
,等等。我似乎无法实现这一点,我尝试创建一个重复的数组,并尝试像这样复制元素:
["chicken", "hippo"]
E[]copy=(E[])(新对象[this.size-1]);
对于(int i=0;i创建一个数组以保存[filtered]结果。其初始大小为零
反复浏览内容
如果需要保留内容的当前元素
,则
- 创建一个临时数组,其长度比保存结果的数组大一倍
- 将结果数组复制到临时数组
- 将临时数组的最后一个元素设置为
contents
- 将临时数组指定给结果数组
这是代码,仅使用简单数组。我想您可以根据需要调整它。请注意,最后一行只是检查newContents
的值。这不是必需的
String[]contents={“鸡肉”、“河马”、“山羊”};
字符串[]newContents=新字符串[0];
for(字符串str:contents){
如果(str.length()>4){
字符串[]临时=新字符串[newContents.length+1];
for(int i=0;i
为什么不首先使用这些方法?它们旨在帮助您管理列表。