有的时候,我们需要在java中对集合中的数据进行分组运算. 例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的type属性进行分组,计算money的总和.有以下两种思路: 思路一: 先计算集合中所有的type情况,然后对于每一种type去遍历集合计算money的和.伪代码如下: Map<String,String> typeMap = new HashMap<String,String>();…
有的时候,我们需要在java中对集合中的数据进行分组运算.例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的type属性进行分组,计算money的总和.有以下两种思路: 思路一: 先计算集合中所有的type情况,然后对于每一种type去遍历集合计算money的和.伪代码如下: Map<String,String> typeMap = new HashMap<String,String>(); f…
import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; public class ListSort { /** * 按照List<Map<String,Object>>里面map的某个value…
不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常: java.lang.NullPointerException java.util.NoSuchElementException 因此本篇博客总结下使用Java Stream的部分场景以及如何避免上述的2个异常: 提取集合中的某一列(普通提取.去重) 按条件过滤集合 求和 最大值/最小值/平均值 1. 数据准备 首先定义下Friend类: package com.zwwhnl…
在java开发中有时候我们需要对List集合中的元素按照一定的规则进行排序,比如说有个Person的集合,我们要根据Person的age属性进行排序输出,这就需要用到Java中提供的对集合进行操作的工具类Collections,其中的sort方法,大家看虾米哥的例子如下: 1.Person类: package www.itxm.cn; public class Person { private String id; private String name; private int age; pu…
package com.loaderman.test; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; public class Test{ /** * 需求:将集合中的重复元素去掉 * * 分析: * 1,创建List集合存储若干个重复元素 * 2,单独定义方法去除重复 * 3,打印一下List集合 */ public static void main(String[] arg…
定义replaceAll方法,将传入的新值替换集合中的老值(list,old,new) private static <E> void replaceAll(List<E> list,E oldObject,E newObject) { for (int i = 0; i < list.size(); i++) { //遍历 if(oldObject.equals(list.get(i))) { //如果list中存在与oldObject相同的值,则用newObject替换…
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢? String——字符串Hash——字典List——列表Set——集合Sorted Set——有序集合 下面我们就来简单说明一下它们各自的使用场景: 1. String——字符串 String 数据结构是简单Key - valu…
大致的再回顾一下java集合框架的基本情况 一.各Set实现类的性能分析 1.1,HashSet用于添加.查询 HashSet和TreeSet是Set的两个典型实现,HashSet的性能总是比TreeSet(SortedSet的子类)好,尤其是最常用的添加.查询等操作.原因:TreeSet需要额外的红黑树算法来维护集合元素的次序,只有当需要一个保持排序的Set时,才应用使用TreeSet 1.2,LinkedHashSet用于遍历 LinkedHashSet是HashSet的一个子类,对于添加.…
1. 简介 对于整数类型的元素集合,例如{1, 2, 3, 4, 5},再进行元素删除时需要注意.在List中删除操作有remove(int index)和remove(Object o), 查看两种方式的注意事项. 2. 示例 (1)删除指定索引的元素: (2)删除指定的元素: Integer[] array2 = new Integer[]{1,2,3,4}; List<Integer> list2 = new ArrayList<>(Arrays.asList(array2)…
有一个person对象如下: public class Person { private String id;private String nam; } 一个list集合如下: List<Employee> personList= Arrays.asList( new Person("1",“张小同"), new Person("2",”靖大同"), new Person("3",”王五"), new P…
for(var i in maps){//通过定义一个局部变量i遍历获取map里面的所有key值 alert(maps[i]); //通过获取key对应的value值 }…
import java.util.*; /* 去除ArrayList集合中的重复元素. */ class ArrayListTest { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("java01"); al.add("java02&q…
一.前言 本篇文章没有什么主题,就是一些零散点的总结.周末没事看了几道蚂蚁金服的面试题,其中有好几道都是特别简单的,基础性的题目,就是我们平时用到的,但是发现要是完全说出来还是有一些不清楚的地方,所以小小的总结一下. 二.hashCode()方法理解 提到hashCode()必然会涉及equals()方法,二者是紧密相连的,其实面试中被问到这方面往往是考察集合存储对象判断相等的问题. 比如有如下Person类: 1public class Person { 2 3 private int age…
一.问题由来 在实际开发的时候,我们经常会碰到这么一个问题:一个集合容器里面有很多重复的对象,里面的对象没有主键,或者说忽略主键,根据业务的需求,我们需要根据条件筛选出没有重复的对象. 二.去重操作 1.通过两层循环去重 通过两层循环来进行判断,没有重复的元素就加入到新集合中,新集合中已经有的元素就跳过. 实体类使用Lombok注解,推荐阅读:Lombok使用指南 实体: @Data @NoArgsConstructor @AllArgsConstructor public class Anim…
又到了总结知识的时间,今天在云和学院继续学习了继承的一些运用,和集合的运用.下面就总结下来吧 理论: 显示调用父类的构造方法,关键字: base:构造函数不能被继承:子类对象被实例化的时候会先去主动的调用父类的构造函数. 如果子类与父类的方法名相同,那么我们的对象会去调用子类的对象. 父类和子类的转换 Person p = new Teacher();子类可以隐式的转换成父类. 转换的前提是转换的类确实存在着继承的关系. 访问修饰符 private : 私有成员, 在类的内部才可以访问. 类中字…
package com.bjpowernode.t03sort; import java.util.ArrayList;import java.util.Collections; /* * 向集合中添加Person类型并对其排序 */public class TestSort02 { public static void main(String[] args) { ArrayList<Person> list = new ArrayList<>(); list.add(new Pe…
package com.bjpowernode.t01list; import java.util.ArrayList; /* * 向集合中添加自定义类型 */public class TestList04 { public static void main(String[] args) { ArrayList list = new ArrayList(); Student s1 = new Student("1001","jack",19); Student s2…
set集合容器: 实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时, 它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值, 而小于右子树所有节点的键值:另外,还得确保根节点的左子树的高度与有字数的高度相等, 这样,二叉树的高度最小,从而检索速度最快.要注意的是,它不会重复插入相同键值的元素,而采取忽略处理. 平衡二叉检索树的检索使用中序遍历算法,检索效率高于vector.deque.和list的容器. 另外,采…
一.Java集合框架   集合,有时也称为容器,是一个用来存储和管理多个元素的对象.Java中的集合框架定义了一套规范,用来表示和操作集合,使具体操作与实现细节解耦.集合框架都包含下列内容: 接口:这些是表示集合的抽象数据类型,它们定义了集合中常见的操作. 实现:为各种集合提供了具体的实现. 算法:这些是对实现集合接口的对象执行有用计算(如搜索和排序)的方法.算法被认为是多态的:也就是说,相同的方法可以用于集合接口的不同实现.   集合框架有以下优点: 减少编程工作:通过提供有用的数据结构和算法…
------- android培训.java培训.期待与您交流! ---------- Collection : |--List:元素是有序的,元素可以重复.因为该集合体系有索引.         |--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢.线程不同步.         |--LinkedList:底层使用的链表数据结构.特点:增删速度很快,查询稍慢.线程不同步.         |--Vector:底层是数组数据结构.线程同步.被ArrayLis…
1.  把文本文件中数据存储到集合中      需求:从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合. 分析:      通过题目的意思我们可以知道如下的一些内容,      数据源是一个文本文件.      目的地是一个集合.      而且元素是字符串.      数据源:   b.txt -- FileReader -- BufferedReader  目的地:  ArrayList<String> 2. 代码示例: package cn.itcast_02; imp…
1. 把集合中的数据存储到文本文件案例:    需求:把ArrayList集合中的字符串数据存储到文本文件 ? (1)分析:通过题目的意思我们可以知道如下的一些内容,ArrayList集合里存储的是字符串.遍历ArrayList集合,把数据获取到.然后存储到文本文件中.文本文件说明使用字符流. (2) 数据源: ArrayList<String> -- 遍历得到每一个字符串数据 目的地: a.txt -- FileWriter -- BufferedWriter 2. 代码示例: packag…
package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Collections { public static void main(String[] args) { /* * 完成以下需求: *创建一个存储字符串的集合list,向list中添加以下字符串:”C++”.”Java”.” Python”.”大数据与云计算”. *遍…
1. 循环list中的所有元素然后删除重复 public   static   List  removeDuplicate(List list)  {         for  ( int  i  =   0 ; i  <  list.size()  -   1 ; i ++ )  {             for  ( int  j  =  list.size()  -   1 ; j  >  i; j -- )  {                  if  (list.get(j).e…
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } } return list; } 2. 通过H…
1. 循环list中的所有元素然后删除重复   public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } } return list; }   2.…