2 brucecloud brucecloud 于 2015.05.27 23:15 提问

java用内部类实现个山寨list(不许使用数组和集合)

java如何使用内部类来实现一个山寨的list,不允许使用数组和集合相关技术,只需实现list的add,size,get方法即可~~
求大神指点下~~

问题已解决~~~~~
下面公布代码:
使用内部类实现的
使用内部类的方式实现

在发布一种非内部类实现的
非内部类实现

4个回答

caozhy
caozhy   Ds   Rxr 2015.05.27 23:18

不用数组和集合,可以用string
String data = "";
void add(int value) {
if (data.equals("")) data = value.toString();
else value += "," + value.toString();
}
int size()
{
return data.split(',').getCount();
}
int get(int index)
{
return Integer.parse(data.split(',')[index]);
}

brucecloud
brucecloud data.split(',')这不就是数组么....题目的要求是要使用内部类来实现个山寨List...
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.05.27 23:26

这不算使用数组吧。
如果你要是觉得忌讳,你继续写下去,自己实现
int size()
{
int r = 1;
for (int i = 1; i < data.length(); i++)
if (data.valueOf(i) == ',') r++;
return r;
}

caozhy
caozhy 回复brucecloud: 内部类你随意定义一个就是了,你按照我的思路绝对不用数组。
2 年多之前 回复
brucecloud
brucecloud 主要是遇到一个面试题,题目就是要使用内部类来实现List,而且内部实现不允许使用集合和数组相关技术...我想了一晚上也没想出来怎么实现...
2 年多之前 回复
edouardzyc
edouardzyc   2015.05.28 09:04

真是坑爹的面试题, 连人家JAVA自己写的ArrayList内部也是数组啊
不用数组和集合 只能拼字符串了 没有什么意义

edouardzyc
edouardzyc 回复brucecloud: so? 你就用链表的结构去实现? 那我说我还能用二叉树呢,找起来还比你快
2 年多之前 回复
brucecloud
brucecloud 意义就在于人家想看看你自己是否可以实现一种数据结构....这种面试题一旦答上来...你的身价会提高一大截....
2 年多之前 回复
jiawei0418
jiawei0418   2015.05.28 12:30

String gg="";
public void add(String a){
gg+=a+"|";
}
public int size(){
int size = 0;
for(int i=0;i<gg.length();i++){
if(gg.charAt(i)=='|'){
size++;
}
}
return size;
}
public String get(int b){
String ag=gg;
int sum=0;
for(int i=0;i<gg.length();i++){
if(gg.charAt(i)=='|'){
if(b==sum){
ag=ag.substring(0, ag.indexOf("|"));
break;
}else{
ag=gg.substring(i+1, gg.length());
}
sum++;
}

    }
    return ag;
}
是这样的吧
Csdn user default icon
上传中...
上传图片
插入图片