一个很有意思的功能,能用java实现吗?

段残梦 2012-11-06 08:50:14
有一个List<String>,里面装的全部都是数字字符串,比如{"1","2","5","6"},现在要进行插入,加入我要在index = 1的位置执行插入操作,那么List<String>就会变成{"1","2","3","5","6"},同样,现在在index = 2的位置执行插入操作,那么List<String>就会变成{"1","2","3","4","5","6"}。
看到这里,你是不是觉得很简单。。。。
好吧,第一关来了。。。
我现在还要在index = 1 的位置执行插入操作,那么List<String>就会变成{"1","2","25","3","4","5","6"}
是不是还是很简单,别急!现在还要在index = 1的位置执行插入操作,那么List<String>就会变成{"1","2","24","25","3","4","5","6"}。依次下去,当List<String>变成{"1","2","21","22","23","24","25","3","4","5","6"}的时候,再在index = 1的位置执行插入操作,那么List<String>就会变成{"1","2","205","21","22","23","24","25","3","4","5","6"},哈哈,升级了,位数增加,如此下去,就可以往前插入无数条。
如果你觉得还是简单,那好。。。
假如现在List<String>是{"1","2","25","3","4","5","6"},现在我要在index = 2的位置执行插入操作,那么List<String>就会变成{"1","2","25","26","3","4","5","6"},如此下去,当List<String>变成{"1","2","25","26","27","28","29","3","4","5","6"}的时候,在"29"元素的后面执行插入操作,那么List<String>就会变成{"1","2","25","26","27","28","29","295","3","4","5","6"},又升级了!如此下去,在"2"和"3"之间就可以往前或者往后插入无数条记录了。
你有更简单明了的实现吗?
...全文
973 32 打赏 收藏 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqfddqr 2012-11-08
  • 打赏
  • 举报
回复
第一 我看箱作业题 第二 阿帕奇开源项目有个数组好像能实现你的功能
风行傲天 2012-11-08
  • 打赏
  • 举报
回复
没看懂你要实现这的条件
first ao 2012-11-07
  • 打赏
  • 举报
回复
我虽然看明白了楼主要干啥,但是这个题目明显有问题啊,你给的初始的List就不满足你想要的那种操作啊!你不会想要随便给一个List然后再按照你那种操作来执行吧,这个就没有啥意义了吧?
chhuean 2012-11-07
  • 打赏
  • 举报
回复
我把楼主的思想理解错了, 现在还是没看懂什么意思
引用
8、也就是如果前面一个数字和后面一个数字的数字值中间不允许塞入一个数字的时候,那么就自动增长一位,并且倒数第二位减1
这段什么意思
MiceRice 2012-11-07
  • 打赏
  • 举报
回复
楼主,这种问题呐,建议直接用Double。也就是初始数组是: {0, 1} 每次插入时,新值即为 前一个数 和 后一个数 的 平均值。 那么: 插入 1:{0, 0.5, 1} 插入 1:{0, 0.25, 0.5, 1} 插入 1:{0, 0.125, 0.25, 0.5, 1} 插入 2:{0, 0.125, 0.1875, 0.25, 0.5, 1} 插入 5:{0, 0.125, 0.1875, 0.25, 0.5, 0.75, 1} 你所提问题用了整数,把问题其实稍微复杂化了。
just_for_download2 2012-11-07
  • 打赏
  • 举报
回复
表达能力太差了点吧。
natici 2012-11-07
  • 打赏
  • 举报
回复
有意思在哪?看懂LZ的描述,但没看懂回复的楼层说有趣有意思的。
ncsxuanguoliang 2012-11-07
  • 打赏
  • 举报
回复
很有意思的东西!
为啥呢 2012-11-07
  • 打赏
  • 举报
回复
就我的理解楼主的意思应该只是实现一个在指定下标位置插入功能,插入功能本身就意味着原来此位置及后续元素后移n位(n=插入元素个数),如果这个List是FIFO规则且其长度可变且没有上限的就符合要求
铁马冰河2014 2012-11-07
  • 打赏
  • 举报
回复
好像很有意思的样子,但是有点难懂,我在想想看- -。
七神之光 2012-11-07
  • 打赏
  • 举报
回复
List<String> my = new ArrayList<String>(){ public List<String> insert(int index){ return null; } }; 楼主应该是这个意思,但是我不明白这样有什么意思? 这是不完全归纳?完全没意思!
ForestDB 2012-11-07
  • 打赏
  • 举报
回复
木有搞懂LZ在说什么,能把需求讲述明白也是种能力。 LZ也许可以换个方式描述,有这种功能后能干什么。
chhuean 2012-11-07
  • 打赏
  • 举报
回复
我是用C#实现的,java应该也差不多
static void Main(string[] args)
        {
            List<string> vals = new List<string>();
            int[,] insert = new int[,] {{2,15},{10,16},{1,23}};//需要插入的项

            //initialize List<string>
            vals.Add("1");
            vals.Add("2");
            vals.Add("4");
            vals.Add("5");

            for (int i = 0; i < insert.GetLength(0); i++) //insert.GetLength(0)获取该数组的第一个维度长度
            {
                ListInsert(insert[i,0],insert[i,1].ToString(),ref vals);
            }
                foreach (string val in vals)
                {
                    Console.Write(val + "  ");
                }
        }

        private static void ListInsert(int index, string item, ref List<string> vals)
        {
            if (vals.Count >= index)
            {
                vals.Insert(index, item);
            }
            else
            {
                vals.Insert(vals.Count, item);  //当index > List<string>元素大小时,默认将该item插入到最后
                //vals.Add(item);               //add方法也可以实现该功能(当index > List<string>元素大小时,默认将该item插入到最后)
            }
        }
永生天地 2012-11-07
  • 打赏
  • 举报
回复
{1,15,2,3,4,6} ---- 15 好像是 1.5 {1,105,11,12,13,14.。。。。。} -----105 好像是 1.05 总体来说,有点乱
chicheng1227 2012-11-07
  • 打赏
  • 举报
回复
看得不是很懂
依山_慕雪 2012-11-07
  • 打赏
  • 举报
回复
难道楼主是在说递归?
akemi_homura 2012-11-07
  • 打赏
  • 举报
回复
这个我在想应该是算法的问题。不明白楼主为什么问能不能用java实现。java只是工具。另外。楼主这个貌似只是个数学问题。反正我没搞明白。
forgetsam 2012-11-06
  • 打赏
  • 举报
回复
一个很有意思的功能,能用中文描述吗?
long546908113 2012-11-06
  • 打赏
  • 举报
回复
看不明白,不是很了解
段残梦 2012-11-06
  • 打赏
  • 举报
回复
引用 8 楼 zhou9898 的回复:
Java code 12345678910111213141516171819 public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("1"); list.add("2……
不是set,是add,是插入,反正就是插入之后,后面的数字自动往后移动,然后前面还有能插入的空间,而且插完之后,顺序还是好的。
加载更多回复(12)

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧