二维list的使用(java)

这篇具有很好参考价值的文章主要介绍了二维list的使用(java)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

二维list的使用(java)

前言:

想必大家对int[ ] [ ]这样的二维数组的初始化,赋值,遍历已经很熟悉了,但java中的二维list就很少能接触到。但遇到了也不慌,接下来就对二维的list深入使用。

初始化:

先导入java.util.ArrayList和java.util.List这两个包

(这里使用Integer类型做示范,String类型也可,其它类型有些适用)

这里主要推荐两种写法:(都差不多)

一:直接add一个List

List<List<Integer>> list = new ArrayList<List<Integer>>();//初始化
List one = new ArrayList();
List two = new ArrayList();
one.add(1);
one.add(2);
two.add(4);
two.add(5);
list.add(one);
list.add(two);

二:{{}}的方法

List one = new ArrayList();
List two = new ArrayList();
one.add(1);
one.add(2);
two.add(4);
two.add(5);
List<List<Integer>> list = new ArrayList<List<Integer>>(){{
       add(one);
       add(two);
}};

当然还有其它的初始化方法,这里写出了比较常用的。

重点来了!!

遍历:

一:普通的for

for (int i = 0; i < list.size(); i++) {
    for (int j = 0; j < list.get(i).size(); j++) {
        System.out.print(list.get(i).get(j) + " ");
    }
    System.out.println();
}

不必多说:

.size() .get()都是list内置的函数。

二:进阶的for

for(List list0 : list){
    for(Object list1 : list0){
        System.out.print(list1 + " ");
    }
    System.out.println();
}

另外一种更好的写法:(养成习惯,把类型都给加上)

for(List<Integer> list0 : list){
    for(Integer list1 : list0){
        System.out.print(list1 + " ");
    }
    System.out.println();
}

for-each循环,这也没啥好说的。

三:使用迭代器

Iterator iterator = list.iterator();
while (iterator.hasNext()) {//迭代器一般都使用while
    List<Integer> t = new ArrayList<>();
    t = (List<Integer>) iterator.next();
    Iterator iterator1 = t.iterator();
    while (iterator1.hasNext()) {
        System.out.print(iterator1.next() + " ");
    }
    System.out.println();
}

要导入java.util.Iterator包,.next() .hasNext()都是内置函数(不懂建议看官方文档)

个人感觉:其实使用迭代器还是c++(.end())用得方便。

四:扩展(将二维list转换为二维数组)

使用 toArray() 方法:

注意:这里的 T 只能是基本数据类型的包装类或者引用类型 ,如 Integer ,String 等,而不是 int 等基本数据类型

<T> T[] toArray(T[] a);
Integer[][] res = new Integer[list.size()][];// 存放转换结果的 二维数组
for (int i = 0; i < res.length; i++) {
    res[i] = list.get(i).toArray(new Integer[list.get(i).size()]);
}

for (int i = 0; i < res.length; i++) {//普通输出
    for (int j = 0; j < res[i].length; j++) {
        System.out.print(res[i][j] + " " );
    }
    System.out.println();
}

直接转换:

Integer[][] res = new Integer[list.size()][];// 存放转换结果的 二维数组
for(int i = 0; i < res.length; i++){ // 遍历二维数组
    res[i] = new Integer[list.get(i).size()]; // 初始化第二维
    for(int j = 0; j < list.get(i).size(); j++){ // 将list中的值赋给数组
        res[i][j] = list.get(i).get(j);
    }
}

for (int i = 0; i < res.length; i++) {//普通输出
    for (int j = 0; j < res[i].length; j++) {
        System.out.print(res[i][j] + " " );
    }
    System.out.println();
}

以上遍历输出结果都为下图所示:

java 二维list,笔记,java,list文章来源地址https://www.toymoban.com/news/detail-709210.html

到了这里,关于二维list的使用(java)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java便捷生成二维码并使用Excel

    第一步生成图片字节数组输出流 第二步字节数组输出流存入excel 使用的是easyexcel和hutool工具便捷快速开发 导出类信息 @ContentRowHeight(100) @ColumnWidth(100/6) 这两个注解是条件excel行列大小,可以自行调整 EasyExcel 会根据这个实体类来生成表格,可以去官网查看注解注释掉其中的某

    2024年02月09日
    浏览(25)
  • Java language programming:List的使用

    (源于PTA) 题目: 1.定义Person类。 2.定义私有属性String name,int age,使用Eclipse生成每个属性setter 、getter,有参Person(String name,int age) 、无参构造方法,toString方法。 3.定义Main类,在main方法中定义List list = new ArrayList(); 4.给变量n赋值生成n个Person对象并添加到列表中,该Person的na

    2024年01月20日
    浏览(30)
  • Java8使用Stream流实现List列表简单使用

       目录 1.forEach() 2.filter(T - boolean) 3.findAny()和findFirst() 4.map(T - R) 和flatMap(T - stream) 5.distinct() 去重 6.limit(long n)和skip(long n)  7.anyMatch(T - boolean) 8.allMatch(T - boolean) 9.noneMatch(T - boolean) Java8提供了Stream(流)处理集合的关键抽象概念,Stream 使用一种类似用 SQL 语句从数据库查询数

    2023年04月27日
    浏览(82)
  • JAVA 使用stream流将List中的对象某一属性创建新的List

    Java Stream是Java 8引入的一种新机制,它可以让我们以声明式方式操作集合数据,提供了更加简洁、优雅的集合处理方式。Stream是一个来自数据源的元素队列,并支持聚合操作。它的特点有: Stream 不会修改原始数据源。 Stream 操作是延迟执行的。 Stream 操作可以是无限的(比如

    2024年02月03日
    浏览(41)
  • JAVA中对list使用stream对某个字段求和

    对于List对象 或者ListMapString,integer等类型的数组,如何快速的求出list数组中某个对象的某个属性的和,平均数,统计数,最大值,最小值,等: 使用 XXXSummaryStatistics统计类实现: 运行结果如下: 相应的还有DoubleSummaryStatistics, LongSummaryStatistics

    2024年02月14日
    浏览(29)
  • HarmonyOS应用开发学习笔记 UI布局学习 List(){}创建列表 列表形式显示 简单使用

    List 创建列表 列表形式显示 官方文档:创建列表(List) 关键代码 List(){} 列表控件 ListItem() {} 子元素 例如 关键代码:listDirection(Axis.Horizontal) 默认竖直方向 Axis.Vertical 分隔线的宽度会使ListItem之间存在一定间隔,当List设置的内容间距小于分隔线宽度时,ListItem之间的间隔会使用

    2024年02月02日
    浏览(37)
  • Java8-使用stream.sorted()对List排序

    1.流的定义 Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的操作! 如果流中的元素的类实现了 Comparable 接口,即有自己的排序规则,那么可以直接调用 sorted() 方法对元素进行排

    2024年02月16日
    浏览(37)
  • JAVA8中list.stream()的一些简单使用

    为函数式编程而生。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。 stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行。 stream只能被使用一次,一旦遍历

    2024年02月03日
    浏览(34)
  • java lambda 工作中使用大全 Lambda表达式将 List<String> 转 List<Long>

    工作中常用的lambda 操作 lambda表达式将List对象某个字段转换以逗号分隔的String类型

    2024年02月12日
    浏览(41)
  • 物联网开发笔记(32)- 使用Micropython开发ESP32开发板之手机扫二维码远程控制开关灯(2)

    一、目的         上一节我们测试了远程控制的环境是好的,这一节在我们的240x240的oled屏幕上显示二维码,然后用手机扫二维码,远程控制LED灯的状态。 二、环境         ESP32 + 240x240的oled彩色屏幕+ Thonny IDE + 几根杜邦线             接线方式请看上前面的章节,

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包