关于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
    评论
好的,我可以帮你解答这个问题。 首先,我们需要创建一个 `Student` 类,包含姓名、年龄、性别等字段: ```java public class Student { private String name; private int age; private String gender; public Student(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public int getAge() { return age; } public String getGender() { return gender; } } ``` 然后,我们创建 3 个 `ArrayList` 对象,指定 `T` 为 `Student` 类,每个 `ArrayList` 中添加一些学员对象: ```java ArrayList<Student> gradeOne = new ArrayList<>(); gradeOne.add(new Student("张三", 18, "男")); gradeOne.add(new Student("李四", 19, "女")); ArrayList<Student> gradeTwo = new ArrayList<>(); gradeTwo.add(new Student("王五", 20, "男")); gradeTwo.add(new Student("赵六", 21, "女")); ArrayList<Student> gradeThree = new ArrayList<>(); gradeThree.add(new Student("孙七", 22, "男")); gradeThree.add(new Student("周八", 23, "女")); ``` 接着,我们创建一个 `HashMap` 对象,以年级名称为键,指定为 `String` 类型,指定 `value` 类型为 `ArrayList<Student>`,值为存放学员的 `ArrayList<T>` 对象: ```java HashMap<String, ArrayList<Student>> map = new HashMap<>(); map.put("一年级", gradeOne); map.put("二年级", gradeTwo); map.put("三年级", gradeThree); ``` 最后,我们从 `HashMap` 对象中获取某个班级的学员信息并输出,比如输出一年级的学员信息: ```java ArrayList<Student> students = map.get("一年级"); for (Student student : students) { System.out.println("姓名:" + student.getName() + ",年龄:" + student.getAge() + ",性别:" + student.getGender()); } ``` 以上就是完整的 Java 代码实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值