我在代码中使用这些方法遇到困难,不幸的是,它们必须是字符串数组。
(有些代码我没有(
import java.util.Scanner;
public class SortedStringArray {
private Scanner input = new Scanner(System.in);
private String[] list = new String[10];
// default
public SortedStringArray() {
String[] list = new String[10];
}
// initial
public SortedStringArray(int initialCapacity) {
String[] list = new String[initialCapacity = input.nextInt()];
}
// insert
public void insertItem(String item) {
int i = list.length;
int n = ++i;
String[] list2 = new String[n];
for (int cnt = 0; cnt < list.length; cnt++) {
list2[cnt] = list[cnt];
}
}
// print
public void print() {
System.out.println(list);
}
// isAvailable
public boolean isAvailable(String item) {
return true;
}
// get index
public int getIndex(String item) {
int index = -1;
for(int i=0; i < list.length; i++) {
index = i;
break;
}
return -1;
}
// delete
public void delete(int index) {
System.out.println("Deleting an Item: ");
String item = input.next();
// not available
if (list == null || index < 0 || index >= list.length) {
System.out.println(item + " is NOT available in sorted array to delete !");
}
String[] list2 = new String[list.length - 1];
for (int i = 0, k = 0; i < list.length; i++) {
if (i == index) {
continue;
}
list2[k++] = list[i];
}
// return array
System.out.println(item + " is deleted from sorted string array !");
}
// size
public int size() {
return list.length;
}
// frequency of item
public int frequencyOfItem(String item) {
}
}
当前排序数组大小:24A A A F H H I J K K M M M N O O O Q R X X Y Z Z
搜索项目:G 在排序字符串数组中不可用
删除项目:R 从排序字符串数组中删除!
当前排序数组,大小:23A A A F H H I J K K M M M N O O O Q X X Y Z Z
项目频率:L 的出现次数为 0
如果这是一个挑战,这里有一些提示:
-
isAvailable()
方法 - 只需遍历数组并将字符串与equals()
方法进行比较。如果你找到一个 - 返回true
,否则 -false
. -
frequencyOfItem()
方法 - 与上述相同,但您还需要一个计数器来计算equals()
方法返回 true 的次数。只需返回该数字即可。 -
delete()
方法 - 将要删除的对象右侧的所有值向左移动(它们的新索引 (i( 将是 i - 1(。使用int
类型的字段来存储数组列表中的值数。(list.length() != size()
(。 -
insertItem()
- 找到要插入的正确索引(这是一个排序数组,对吧?(,将所有值从找到的索引向右移动(i + 1(。在找到的索引处插入新元素。注意:如果没有足够的空间容纳新元素,则必须重建数组。看看Arrays.copyOf()
方法。