Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将元素存储到另一个列表中_Java_List_Data Structures - Fatal编程技术网

Java 将元素存储到另一个列表中

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值存储到局

不需要什么帮助。正在做作业,我必须用ArrayDesk对列表进行排序。我可以检查第一个和最后一个元素。 例如,我有一份清单

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对列表进行排序。为什么会有人这样做?为什么不使用
数组。排序(列表)
?正如你所看到的,这是家庭作业,我理解,但对我来说没有任何意义。听起来像是“我需要用香蕉去下一个城市”。