zoukankan      html  css  js  c++  java
  • 创建一个LinkedList,然后在其中插入多个值,确保每个值都插入到List中间(偶数中间两个数之一,奇数在正中间)

    这是Thinking in java 中的一道题,下面是我的解决方案:

     1 package test;
     2 
     3 import java.util.LinkedList;
     4 import java.util.ListIterator;
     5 
     6 /**
     7  * 
     8  * 创建一个LinkedList,然后在其中插入多个值,确保每个值都插入到List中间(偶数中间两个数之一,奇数在正中间)
     9  *
    10  */
    11 public class InsertInMiddle {
    12     public static void main(String[] args) {
    13         LinkedList<Integer> list = new LinkedList<Integer>() ;
    14         Integer[] integers = new Integer[]{1,2,3,4,5,6}  ;
    15         insertInMiddle(list,integers) ;
    16     }
    17     public static void insertInMiddle(LinkedList<Integer> list , Integer[] integers ){
    18         ListIterator<Integer> listIterator = list.listIterator() ;
    19         for(Integer integer : integers ){
    20             if(list.size() == 0 ){
    21                 listIterator.add(integer);
    22             }else{
    23                 if((list.size() & 1) == 0 ){
    24                 listIterator.previous() ;
    25                 listIterator.add(integer);
    26                 }else{
    27                     listIterator.add(integer);
    28                 }
    29             }
    30         }
    31         System.out.println(list);
    32     }
    33 }

    我的思路是:

    ListIterator“指针”总是指向中间的新插入的元素,当发现当前列表长度为奇数时,可以直接将新元素插入到当前指针所指元素后边,如果当前列表长度为偶数时,需要将

    这个指针向前移动一位,然后再将新的元素插入到指针所指元素的后边。

     百度上搜索了一下,才发现我似乎傻逼了:

     1 import java.util.LinkedList;  
     2 import java.util.ListIterator;  
     3   
     4 //创建一个空的LinkedList<Integer>,通过使用ListIterator,将若干个Integer插入这个List中,插入时,  
     5 //总是将它们插入到List的中间  
     6   
     7 public class Ex14 {  
     8     static void addMiddle(LinkedList<Integer> l,Integer[] ia){  
     9         for(Integer i : ia){  
    10             ListIterator<Integer> it = l.listIterator((l.size()/2));  
    11             it.add(i);  
    12             System.out.println(l);  
    13         }  
    14     }  
    15     public static void main(String[] args) {  
    16         LinkedList<Integer> li = new LinkedList<Integer>();  
    17         Integer[] x = {0,1,2,3, 4, 5, 6, 7};  
    18         Ex14.addMiddle(li, x);  
    19     }  
    20   
    21 }  

    这个多简单粗暴~~~

  • 相关阅读:
    MVC是什么意思?
    Paypal 在线支付接口应用从零开始,第2节,[支付API原理及流程]
    人人网
    百度框计算研究
    最近总被黑。然后。。发现了很多知识值得学习。。分享出来。
    首次购房契税下调至1% 首付降为20%
    由“百鸡问题”浅谈程序性能
    10月1日起机动车所有人可自行编排车牌号
    08中国互联网大会23在南京开幕
    MySQL联合创始人向Sun递交辞呈
  • 原文地址:https://www.cnblogs.com/caiyao/p/4733977.html
Copyright © 2011-2022 走看看