Java 将元素存储到另一个列表中
不需要什么帮助。正在做作业,我必须用ArrayDesk对列表进行排序。我可以检查第一个和最后一个元素。 例如,我有一份清单Java 将元素存储到另一个列表中,java,list,data-structures,Java,List,Data Structures,不需要什么帮助。正在做作业,我必须用ArrayDesk对列表进行排序。我可以检查第一个和最后一个元素。 例如,我有一份清单 int[] list = {6, 8, 7}; 第一个元素-6-将进入空数组,这没有问题。 第二个元素-8-将位于6后面,因此我们将有[6,8],但接下来是7。因为我不能把它放在6前面,也不能放在8后面。因此,我必须将7存储到其他列表中,以便稍后返回。我该怎么做?欢迎任何提示。 谢谢 (很抱歉,如果这是以前询问过的问题,但找不到解决方案)您可以将索引x处的int值存储到局
int[] list = {6, 8, 7};
第一个元素-6-将进入空数组,这没有问题。
第二个元素-8-将位于6后面,因此我们将有[6,8]
,但接下来是7。因为我不能把它放在6前面,也不能放在8后面。因此,我必须将7存储到其他列表中,以便稍后返回。我该怎么做?欢迎任何提示。
谢谢
(很抱歉,如果这是以前询问过的问题,但找不到解决方案)您可以将索引x处的int值存储到局部变量中,然后遍历数组,查看是否有一个值低于当前存储的值,如果是,则成为新的较低值。当它完成对数组的遍历后,您可以将其输入到新数组中。让我先澄清一下您的限制条件。您只能:
- 获取第一个元素的值
- 移除第一个元素
- 在第一个元素之前预结束
- 获取最后一个元素的值
- 删除最后一个元素
- 在最后一个元素后追加
- 对于数组中的每个值
- 如果该值小于组中的第一个值->预结束
- 否则,如果该值大于组->附加中的最后一个值
- 否则,如果该值更接近第一个值:
- 移除第一个元素并反复推动堆栈,只要第一个元素较小
- 将值前置到数据组
- 当堆栈不为空时,从堆栈中弹出,并预编到甲板上
- 其他:
- 移除最后一个元素并反复推动堆栈,只要最后一个元素更大
- 将值附加到数据组
- 当堆栈不为空时,从堆栈中弹出并附加到组中
publicstaticvoidmain(String[]args){
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
ArrayDeque<Integer> container = new ArrayDeque<>();
ArrayDeque<Integer> container2 = new ArrayDeque<>();
System.out.println("Please enter 10 number with space");
for(int i=0;i<10;i++){
container.add(sc.nextInt());
}
while (!isSorted(container.isEmpty()?container2:container)) {
while (!container.isEmpty()) {
int a = container.poll();
if(container.peek()!=null && a<container.peek()){
if(container2.peek()!=null && container2.peek()>container.peek()){
container2.addFirst(a);
}else{
container2.addLast(a);
}
}else if(container.peek()!=null){
if(container2.peek()!=null && container2.peek()>container.peek()){
container2.addFirst(container.poll());
}else{
container2.addLast(container.poll());
}
container.addFirst(a);
}else{
container2.addLast(a);
}
}
while (!container2.isEmpty()) {
int a = container2.poll();
if(container2.peek()!=null && a<container2.peek()){
if(container.peek()!=null && container.peek()>container2.peek()){
container.addFirst(a);
}else{
container.addLast(a);
}
}else if(container2.peek()!=null){
if(container.peek()!=null && container.peek()>container2.peek()){
container.addFirst(container2.poll());
}else{
container.addLast(container2.poll());
}
container2.addFirst(a);
}else{
container.addLast(a);
}
}
}
while (!container.isEmpty()) {
System.out.println(container.poll());
}
System.out.println("---------------------------");
while (!container2.isEmpty()) {
System.out.println(container2.poll());
}
}
static boolean isSorted(ArrayDeque<Integer> con){
boolean answer = true;
for(int i=0;i<con.size()-1;i++){
int a = con.poll();
con.addLast(a);
if(con.peek()!=null && a>con.peek()) answer= false;
}
con.addLast(con.poll());
return answer;
}
扫描仪sc=新的扫描仪(System.in);
ArrayDeque容器=新的ArrayDeque();
ArrayDeque container2=新的ArrayDeque();
System.out.println(“请输入带空格的10号”);
对于(int i=0;icontainer.peek()){
container2.addFirst(container.poll());
}否则{
container2.addLast(container.poll());
}
容器。首先添加(a);
}否则{
容器2.最后添加(a);
}
}
而(!container2.isEmpty()){
int a=container2.poll();
if(container2.peek()!=null&&acontainer2.peek()){
容器。首先添加(a);
}否则{
容器。addLast(a);
}
}else if(container2.peek()!=null){
if(container.peek()!=null&&container.peek()>container2.peek()){
container.addFirst(container2.poll());
}否则{
container.addLast(container2.poll());
}
集装箱2.先添加(a);
}否则{
容器。addLast(a);
}
}
}
而(!container.isEmpty()){
System.out.println(container.poll());
}
System.out.println(“-------------------------------”;
而(!container2.isEmpty()){
System.out.println(container2.poll());
}
}
静态布尔isSorted(ArrayDeque con){
布尔答案=真;
对于(inti=0;icon.peek())回答=false;
}
con.addLast(con.poll());
返回答案;
}
使用ArrayQue对列表进行排序。为什么会有人这样做?为什么不使用数组。排序(列表)
?正如你所看到的,这是家庭作业,我理解,但对我来说没有任何意义。听起来像是“我需要用香蕉去下一个城市”。