精华内容
下载资源
问答
  • java list随机取值

    千次阅读 2017-11-29 14:18:02
    public static void main(String[] args) { List list = new ArrayList(); List randomList = new ArrayList(); for (int i = 0; i list.add(i, String.valueOf(i)); } for (String i : list) { System.out.
    public static void main(String[] args) {
    List<String> list = new ArrayList<String>();

    List<String> randomList = new ArrayList<String>();

    创建有顺序的list

    for (int i = 0; i < 10; i++) {
    list.add(i, String.valueOf(i));
                   }
    for (String i : list) {
    System.out.println("输出的数字为"+i);

                              }

    //循环三次输出打乱的list

    for (int k = 0; k <3; k++) {
    //removeListElement(list,5);
    randomList = randomListElement(list,5);
    System.out.println("打乱之后的顺序为----------");
    for (String i : randomList) {
    System.out.println("打乱之后输出的数字为"+i);
                                  }
                         }
                }

    private static List<String> randomListElement(List<String> list, int i) {
    List<String> randomList = new ArrayList<String>();
    //随机打乱list
    Collections.shuffle(list);
    for (int j = 0; j <i; j++) {
    randomList.add(list.get(j));
           }
    return randomList;
      }
    展开全文
  • 一张表 十条数据 正常情况下会在页面显示十条数据, 但是却只显示了一条数据,是什么错啊?为什么会有这样的错误?什么情况下会有这样的错误?? 求解!!
  • 在我们日常开发过程中,有很多场景需要对list集合进行取值筛选,以下是我对常用的一些知识点进行总结 首先,创建一个需要用到的对象,例如学生对象,有相关字段:姓名,年龄,性别 public class Student { private...

    在我们日常开发过程中,有很多场景需要对list集合进行取值筛选,以下是我对常用的一些知识点进行总结

    首先,创建一个需要用到的对象,例如学生对象,有相关字段:姓名,年龄,性别

    public class Student {
    
        private String name;
        private int age;
        private String sex;
    
        public Student( String name, int age,String sex) {
            this.age = age;
            this.name = name;
            this.sex = sex;
        }
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    }
    

    其次,对这些字段属性进行赋值

    	  Student s1 = new Student("小金",20,"女");
          Student s2 = new Student("小宋",21,"女");
          Student s3 = new Student("小张",25,"男");
          Student s4 = new Student("小王",27,"男");
          Student s5 = new Student("小王",30,"未知");
          List<Student> list = new ArrayList<>();
          list.add(s1);
          list.add(s2);
          list.add(s3);
          list.add(s4);
          list.add(s5);
    

    1、遍历-foreach

    使用stream流进行foreach遍历

    list.stream().forEach(student->{
        //处理逻辑,打印出所有学生的姓名
        System.out.println(student.getName());
    });
    

    运行结果:
    在这里插入图片描述

    2、筛选list

    filter函数的()里,应该放逻辑,判断条件,将符合条件的放到resultList中
    代码如下,筛选集合中所有性别为女的学生

    List<Student> resultList = list.stream().filter(student -> Objects.equals(student.getSex(),"女")).collect(Collectors.toList());
    resultList.stream().forEach(student->{
        System.out.println(student.getName());
    });
    

    运行结果:
    在这里插入图片描述

    3、list去重

    根据性别去重

    List<Student> unique = list.stream().collect(Collectors.collectingAndThen(
         Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Student::getSex))), ArrayList::new));  
    unique.stream().forEach(student->{
       System.out.println(student.getName());
    });
    

    运行结果:
    在这里插入图片描述

    4、取出list集合对象中某一个属性

    取出每个对象中的姓名组成一个新的集合

    List<String> listStr = list.stream().map(Student::getName).collect(Collectors.toList());
    

    去重

    List<String> listNew = listStr .stream().map(Student::getName).distinct().collect(Collectors.toList());
    

    运行结果:
    在这里插入图片描述

    5、list与map互转,并根据某一属性进行分组

    list转map (下方studentMap运行会报错,因为作为key值,name不能重复,所以正式开发中应该使用唯一性id作为key值)

    Map<String, Student> studentMap = list.stream().collect(Collectors.toMap(Student::getName, student -> student));
    

    list转数组

    String[] listStrs = list.stream()
                    .filter(e -> Objects.equals(e.getSex(), "男"))
                    .sorted(Comparator.comparing(Student::getName))
                    .map(Student::getName).toArray(String[]::new);
    

    list转map并且分组

    Map<String, List<Student>> listMap = list.stream().collect(Collectors.groupingBy(Student::getSex));
    

    运行结果:
    在这里插入图片描述

    根据对象某些属性,进行分组
    Map<List, List> studentsMap= list.stream()
    .collect(Collectors.groupingBy(f -> Arrays.asList(f.getAge),f.getSex())));

    map转list

    List<Student> collect = studentMap.values().stream().collect(Collectors.toList());
    

    6、过滤属性为空的字段

    Student s6 = new Student("",30,"男");
    list.add(s6);
    
    List<String> stringList = list.stream().map(s -> s.getName()).filter(s -> !s.isEmpty()).collect(Collectors.toList());
    

    7、根据某一属性进行计算

    根据年龄求最大值、最小值、平均值、总和、个数

    IntSummaryStatistics resultNum = list.stream().mapToInt((item)->item.getAge()).summaryStatistics();
    System.out.println("max:"+resultNum.getMax());
    System.out.println("min:"+resultNum.getMin());
    System.out.println("sum:"+resultNum.getSum());
    System.out.println("average:"+resultNum.getAverage());
    System.out.println("count:"+resultNum.getCount());
    

    运行结果:
    在这里插入图片描述
    注意
    1、求和有三种类型,mapToInt,mapToLong,mapToDouble
    2、如果是Bigdecimal数值类型,则计算方法如下,(新建对象)

    Frult frult1 = new Frult("西瓜",new BigDecimal(1));
    Frult frult2 = new Frult("梨子",new BigDecimal(2));
    List<Frult> frultList = new ArrayList<>();
    frultList.add(frult1);
    frultList.add(frult2);
    BigDecimal totalPrice = frultList.stream().map(Frult::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
    //或者用mapToInt()进行强转(int->Bigdecimal)
    

    结语:本人目前用到这么多,希望各位有更好的或者其它的用法给予建议与评论,有错误也希望能得到指正!

    展开全文
  • javaList与Map的使用

    千次阅读 多人点赞 2018-01-07 21:36:54
    最近在捣鼓SKU算法(初步),然后用到了一堆list与map或者map与list的各种嵌套,所以借此机会来总结一些list和map的一些特性,以及一些使用的注意事项。 一、map和list的区别  首先呢,我们先简要的说一下map...

            最近在捣鼓SKU算法(初步),然后用到了一堆list与map或者map与list的各种嵌套,所以借此机会来总结一些list和map的一些特性,以及一些使用的注意事项。

    一、map和list的区别

            首先呢,我们先简要的说一下map与List的一些区别地方,首先呢,map就是类似于key-value形式的数据结构集合,key值可以唯一的找到一个对应的value值,然后value值可以是任何类型,或者是对象类型,因为有了这个特点,我们也可以在map中放入List,从而行成一个靠value寻找List的形式。

            而List呢,是某一种类型对象的集合,可以是各种基于对象类型的对象,比如String,或者是某个实体,或者是Map都是可以的。给人的感觉是这个样子:

            因为有这种特性,所以我们在组装数据的时候就有n多种可能性了:



    二、实际应用

            然而我们在实际应用的时候考虑的问题会有很多,比如第一就是我们需要如何去拿数据来用,我们的数据中哪个部分是静态的,哪个部分又是动态不确定的,这都是很重要的。

            首先我们来看,List和map虽然都是可以延伸很多个组或者对象的数据结构,但是这里面有很本质的区别,那就是map中取数据可以用key来指定取哪个,但是lsit则必须指定序号来取,并且有排序的功能。如此一来,在我们的数据数量也好,组分也好是固定的情况下的话,我们一般适用的是map来存储,这样我们可以直接找到并使用我们想要找的数据。例如:性别,是否存在等特性的时候经常使用这样的数据结构来存储,以达到可以随时使用的目的。

            但是类似于班级的人等不确定数量的元素,一般我们用List结构来存储,因为我们可以按照不同的班级创建容量不同的学生集合,按照循环来调用学生List<Object>。如果是要一个年级的学生的话,则需要map和list配合来使用了,map中标志为年级中的每个班,而班中存储的是List,为班里面的学生。Map<String,List<Object>>

            那么什么时候用到List中套map呢?这种情况就是List中想要存储类型或者表现形式不同的数据的时候,可以借助map来实现,比如一个map是Map<String,int>,一个是Map<String,double>用Map把类型都统一了就可以放在List中了,或者是map中是集合,但是map的数量不确定的时候。

           那么什么时候用List嵌套List<List<Object>>呢?这样的时候就是有两种因素都不确定的时候,比如商品的属性数量还有属性中的项目个数都不确定的时候就可以使用这种结构。

    声明:我们使用的是jsp页面进行数据显示的,所以查询出来的数据需要按key取值,或者是循环显示,所以就有了这样的一个思考路线和数据结构的铺垫,希望大家可以借鉴。


    展开全文
  • resultDataSet.javaRDD().map((Function, UserPlaces>) f->{ //获取分组聚合后的place信息 //WrappedArray 开始 WrappedArray wrappedArray = (WrappedArray)f.get(1); for(int i=0; i(); i++){ WrappedArray ...

    示例:demo数据

    userId place
    1001 北京
    1001 上海

    spark建立的虚拟表 userPlaceView。根据用户ID进行分组,用collect_set(place)获取place信息。
    spark sql 函数查询 地址

    Dataset<Row> resultDataSet = SqlContext.sql("select userId, collect_set(place) as place from userPlaceView group by userId");
    resultDataSet.javaRDD().map((Function<Row, UserPlaces>) f->{ //获取分组聚合后的place信息
    	//WrappedArray 开始
    	WrappedArray wrappedArray = (WrappedArray)f.get(1);
    	for(int i=0; i<wrappedArray.size(); i++){
             WrappedArray data = (WrappedArray)wrappedArray.apply(i);
             for(int z=0; z<data.size(); z++){
                 String place = (String)data.apply(z);
                 System.out.println(place);
             }
         }
         ......
    });
    
    
    展开全文
  • Java List性能优化

    千次阅读 2017-07-20 11:30:51
    List接口  list主要有三种实现:ArrayList,Vector和LinkedList,其中ArrayList和Vector使用了数组实现,LinkedList使用了循环双向链表数据结构。 1.插入数据比较  在队尾增加数据,ArrayList相对较快,...
  • Java对象创建的具体过程

    千次阅读 2017-07-09 14:31:59
    Java是一门面向对象的编程语言,在Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象(例如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java...
  • Java实现创建outlook邮箱账号

    千次阅读 2018-01-18 15:00:02
    本文的先决条件:待创建的邮箱账号必须已经创建了AD账号,关于如何通过Java创建AD账号,请参考我写的另一篇博客现在我们开始。。。。。。话说从研究这个功能到实现它前后大致花了一周的时间,毕竟用Java实现这个不是...
  • Java(1)-Java中的Map List Set等集合类

    万次阅读 多人点赞 2012-06-08 12:57:41
    Map List Set等集合类: 一、概述 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系: +Collection 这个接口extends自 --java.lang.Iterable接口 ├+List(接口 代表有序,可重复的集合...
  • 从第三方api取回的json数据需要取其中的值进行数据分析,利用jsonobj和jsonarr...可以使用json.cn去看着json取值,这样结构清晰。利用HttpURLConnection从第三方中拿回数据,InputStreamReader得到输出的字节流json串。
  • java集合 set list map

    千次阅读 2011-08-07 09:12:58
    Java的集合分为三种 1、集合Set  Set集合的元素不区分顺序,且不允许出现相同元素。这里同样的元素指的是以equals()方法判断的 2、列表List  List列表中的记录元素添加的顺序,而且可以填充相同的元素。 3、...
  • 模糊查询测试三、占位符与取值符 一、问题说明 使用模糊查询,在数据库中查询名字中带有"周"字的人的信息,可以使用如下的模糊查询语句: SELECT id,username,sex,address,birthday FROM user where ...
  • Java8 List Map 集合操作

    千次阅读 2018-11-29 11:47:13
    //排序listList&amp;amp;lt;String&amp;amp;gt; list = Arrays.asList(&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;); ...
  • [Java] List用法

    千次阅读 2015-04-05 15:46:38
    1、List中可以添加任何对象,包括自己定义的新的类。 class Person{ ….. } 上面定义了一个Person类,下面看好如何使用List Person p1=new Person(); Person p2=new Person(); List list=new ArrayList(); ...
  • Java Collection Framework : List

    千次阅读 多人点赞 2016-10-28 13:43:22
    List 包括 List接口以及List接口的所有实现类。因为 List 接口实现了 Collection 接口,所以 List 接口拥有 Collection 接口提供的所有方法,同时又因为 List 是列表类型,所以 List 接口还提供了一些适合自身的方法...
  • [基础篇]-java8之List全面操作指南

    千次阅读 2020-08-09 18:05:07
    List集合是开发中常用的集合之一,本文主要讲解List集合之各种操作转换。 大致包含以下内容: 遍历(5种方式) 排序(普通排序、单/多属性排序) 转Map 分组 去重(对象属性去重) 提取 过滤(单条件、多条件) ...
  • import java.util.ArrayList; public class List_1 { public static void main(String[] args) { ArrayList list=new ArrayList(); list.add("一"); list.add("二"); list.add("三"); list.add("四"); ...
  • JSON(JavaScript Object Notation): 是一种轻量级的数据交换格式一、JSON建构有两种结构:对象和数...key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以
  • javalist扩容原理

    千次阅读 2018-08-10 10:26:08
    List arrayList = new ArrayList(); 如果像上面这样使用默认的构造方法,初始容量被设置为10。当ArrayList中的元素超过10个以后,会重新分配内存空间,使数组的大小增长到16。 可以通过调试看到动态增长的数量变化...
  • 深入理解Java类型信息(Class对象)反射机制

    万次阅读 多人点赞 2017-05-01 23:19:19
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ...深入理解Java类型信息(Class对象)反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解
  • 秒懂,Java 注解 (Annotation)你可以这样学

    万次阅读 多人点赞 2017-06-27 21:48:30
    文章开头先引入一处...Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。 我个人认为,比较糟糕的技术文档主要特征之一就是:用专业名词来...
  • 在开发过程中经常会遇到java对象的属性特征不确定的情况,比如属性的名称,属性的类型,属性的取值等不确定的情况,如何在java运行时获取这些信息?动态的设置java对象的属性值?借助java反射机制以及javassist能够...
  • List List是一个接口 ArrayList 和 LinkedList 区别: ArrayList:数组实现 数组实现的特点: 查询快 增删慢(参照于LinkList) 查询: 直接使用角标查询 增删: 需要把要添加的元素的位置 后面的元素 全部移动...
  • java判断list不为null,又要判断size>0

    千次阅读 2015-05-04 22:37:58
    这样的list不为null,但是size=0,这样的集合对于之后的判断是没用的,甚至是报异常,如list.get(0.....n)这样的取值判断,就会报异常。 所以判断时候往往要双重判断。即list!=null && list.size()>0才好。 容器...
  • 深入理解Java注解类型(@Annotation)

    万次阅读 多人点赞 2017-05-21 10:51:43
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ...深入理解Java类型信息(Class对象)反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解
  • List与Set互相转换 由于这两个都是单列集合,可以很容易进行转换。注意,list转成set之后,会丢失自己的排序以及重复数据。我们有时候会使用这个特性来对list进行去重处理。同理,若是想用这个方法做自定义对象list...
  • (本文搜集全网知识点以及博主个人见解,有不对的地方可提出并探讨。转载请注明原文地址!) java集合概念 ...集合类型主要有3种:set(集)、list(列表)和map(映射)。 集合接口分为:Collection和Map,lis...
  • Java根据模板创建excel文件

    千次阅读 2015-11-07 20:27:37
    3)从xml文件中取值 //获取xml文件跟节点 Element root = parse.getRootElement(); //获取模板名称 String templateName = root.getAttribute("name").getValue(); 4)设置excel列宽 int rownum =...
  • Java集合容器面试题(2020最新版)

    万次阅读 多人点赞 2020-03-01 11:08:34
    文章目录集合容器概述什么是集合集合的特点集合和数组的区别使用集合框架的好处常用的集合类有哪些?List,Set,Map三者的区别?...Java集合的快速失败机制 “fail-fast”?怎么确保一个集合不能被修改?Collection...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,936
精华内容 20,774
关键字:

java的list创建与取值

java 订阅