Java 用已排序的字符串值填充空堆栈
我有一个字符串值数组(未排序)。我的目标是对这些值进行排序,然后将它们推送到一个空堆栈中。我无法解决的问题是,当我将()具有最低字符的字符串推入堆栈时,我无法找到删除该字符串的方法,以便下次循环迭代时,该字符串不会再次与下一个最低的字符串进行比较。我知道我可能采用了错误的方法,但我认为对于我的数据结构类来说,这是一个很好的练习方法。以下是我的代码:Java 用已排序的字符串值填充空堆栈,java,stack,structure,Java,Stack,Structure,我有一个字符串值数组(未排序)。我的目标是对这些值进行排序,然后将它们推送到一个空堆栈中。我无法解决的问题是,当我将()具有最低字符的字符串推入堆栈时,我无法找到删除该字符串的方法,以便下次循环迭代时,该字符串不会再次与下一个最低的字符串进行比较。我知道我可能采用了错误的方法,但我认为对于我的数据结构类来说,这是一个很好的练习方法。以下是我的代码: import java.util.*; public class StackClass { public static void main
import java.util.*;
public class StackClass {
public static void main(String[] args) {
Stack<String> name = new Stack<String>();
String arr[] = {"Camila", "Zury", "Diego",
"Gabriela","Brian","Fabian", "Harry","Martin", "Luis", "Anderson",};
String minChar;
minChar= arr[0];
for (int i = 1; i < arr.length; i++) {
if(arr[i].charAt(0) < minChar.charAt(0)) {// to compare the lowest char
minChar = arr[i]; //lowest char = minChar
}
}
name.push(minChar); //minChar is pushed into the stack.
System.out.println(name);
}
}
import java.util.*;
公共类StackClass{
公共静态void main(字符串[]args){
堆栈名称=新堆栈();
字符串arr[]={“Camila”、“Zury”、“Diego”,
“加布里埃拉”、“布莱恩”、“费边”、“哈利”、“马丁”、“路易斯”、“安德森”};
字符串minChar;
minChar=arr[0];
对于(inti=1;i
如果要使用字符串数组列表(ArrayList
),只需使用remove(item)
函数,因为ArrayList支持动态调整大小
不幸的是,数组的长度是固定的,因此您的案例中的一个选项是删除arr[i]
的对象引用。乙二醇
if(arr[i].charAt(0) < minChar.charAt(0)) {// to compare the lowest char
minChar = arr[i]; //lowest char = minChar
arr[i] = null; //this will remove the object reference but not resize the array
}
if(arr[i].charAt(0)
如果要使用字符串数组列表(ArrayList
),只需使用remove(item)
函数,因为ArrayList支持动态调整大小
不幸的是,数组的长度是固定的,因此您的案例中的一个选项是删除arr[i]
的对象引用。乙二醇
if(arr[i].charAt(0) < minChar.charAt(0)) {// to compare the lowest char
minChar = arr[i]; //lowest char = minChar
arr[i] = null; //this will remove the object reference but not resize the array
}
if(arr[i].charAt(0)
公共静态void main(字符串[]args){
字符串名称[]={“彼得”、“帕特丽夏”、“亨特”、“莎拉”,
“盖布”、“吉娜”、“罗布”、“约翰”、“佐伊”、“塔米”、“罗伯特”,
“肖恩”、“帕斯卡尔”、“凯西”、“尼尔”、“瓦尔”};
堆栈=新堆栈();
数组。排序(名称);
for(字符串名称:名称){
stack.push(名称);
}
//试验
for(字符串名称:堆栈){
System.out.println(名称);
}
}
公共静态void main(字符串[]args){
字符串名称[]={“彼得”、“帕特丽夏”、“亨特”、“莎拉”,
“盖布”、“吉娜”、“罗布”、“约翰”、“佐伊”、“塔米”、“罗伯特”,
“肖恩”、“帕斯卡尔”、“凯西”、“尼尔”、“瓦尔”};
堆栈=新堆栈();
数组。排序(名称);
for(字符串名称:名称){
stack.push(名称);
}
//试验
for(字符串名称:堆栈){
System.out.println(名称);
}
}
Arrays.asList(arr).stream().sorted().forEachOrdered(name::add)代码>Arrays.asList(arr).stream().sorted().forEachOrdered(name::add)代码>这将无法正常工作。将arr[i]
设置为null应在for
循环结束后进行。这将无法正常工作。应在
for的
循环结束后,将arr[i]设置为null。