关于ArrayList<>问题解答

我声明了ArrayList<ArrayList<String>> ad = new ArrayList<ArrayList<String>>();
ArrayList<String> mn = new ArrayList<String>();
mn.add("hello!");
mn.add("world!");
ad.add(mn);
System.out.println(ad.get(0));
我输出的是【hello!,world!】而不是字符串“mn”啊??我想输出字符串“mn”啊,有哪位大神帮忙解决一下!!!万分感谢!!!




首先来说一下System.out.println(xx);这句的作用。
他实际上是先调用xx.toString()。 然后输出这个值。
顺便提一下,默认的toString方法将会输出  类的名字+“@”+hash码(不明白也没关系)

再来看代码结构,
一个ad,里面存放的对象是 arrayList。
一个mn, 里面存放的对象的String。
将两个String(hello,world)放入 mn。
将已经存放了两个String的叫做mn的arrayList 放入ad

那么,ad.get(0) 得到的就是ad这个arrayList所存放的第一个值,而实际上ad里面确实也只存了一个值,就是叫做mn的arrayList。

结合开头说的,system.out 输出的就是mn这个arrayList的toString方法。
arrayList的toString方法就是这么个格式输出 [,,,]
即,开头结尾是中括号,里面是元素的值,元素之间用逗号隔开。

以上是答案输出的原因。

若想要输出mn这个字符串,这个问题反而觉得没有我上面说的那一段有意思了,或许楼主不是这个意思。
我的理解是,你只需要输出 mn这个字符串。
提供一点思路:
在mn里面第一个先添加字符串 mn(你不放进去,怎么输的出来呢?)
然后在system.out里面输出mn的第一个值代码为:
ArrayList<String> mn = new ArrayList<String>();
mn.add(“mn”);
mn.add("hello!");
mn.add("world!");
ad.add(mn);
System.out.println(ad.get(0).get(0));//ad的get(0)放的是mn这个arrayList,mn的get(0)才是 “mn”字符串

只要理清楚了你所输出的到底是什么东西,很自然的就能得到自己想得到的东西。
楼主如果不是我所写的这段代码的意图,大可以根据我提供的得到自己想要的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值