Java用list储存,遍历,查询指定信息过程详解

需求说明

实现思路

见代码注释

代码内容

使用list储存,遍历,查询,删除

import java.util.ArrayList;
import java.util.List;

/**
 * @auther::9527
 * @Description: 第七题
 * @program: 多线程
 * @create: 2019-08-09 23:39
 */
public class Seventh {
  public static void main(String[] args) {
    //初始化企鹅信息
    Pengui p1 = new Pengui("欧欧", "Q仔");
    Pengui p2 = new Pengui("亚亚", "Q妹");
    Pengui p3 = new Pengui("菲菲", "Q妹");
    Pengui p4 = new Pengui("美美", "Q妹");
    //创建List集合并将企鹅信息添加进list中
    List<Pengui> list = new ArrayList<>();
    list.add(p1);
    list.add(p2);
    list.add(p3);
    list.add(p4);
    //查看企鹅数量
    System.out.println("总共有" + list.size() + "只企鹅");
    //查看所有企鹅的信息
    for (Pengui pengui : list) {
      System.out.println(pengui.getName() + "\t" + pengui.getGender());
    }
    //按题意删除指定的企鹅 题目中只保留了欧欧和亚亚,所以要删除的是菲菲和美美
    for (int i = 0; i < list.size(); i++) {
      if (list.get(i).getName().equals("菲菲")) {
        list.remove(i);
      }

      if (list.get(i).getName().equals("美美")) {
        list.remove(i);
      }
    }
    System.out.println("\n\n");
    System.out.println("删除之后只剩" + list.size() + "只企鹅\n" +
        "分别是:");
    //查看剩下的企鹅
    for (Pengui pengui : list) {
      System.out.println(pengui.getName() + "\t" + pengui.getGender());
    }

    //判断企鹅中是否包含指定企鹅,题目中指定的是美美
    String index = "美美";
    //设置中转查询temp  temp取值为一个数组下标中绝对不会出现的数字
    int temp = -1;
    //遍历集合,如果集合中有这个元素,就给temp赋值,如果集合中没有这个元素,则不会被赋值
    for (int i = 0; i < list.size(); i++) {
      if (list.get(i).getName().equals(index)){
        temp = i;
      }
    }
    //如果temp的值没变,则表明没有这个元素,如果temp的值变掉了,则表明有这个元素
    if (temp == -1){
      System.out.println("集合中不包含 "+index+" 的信息");
    }else{
      System.out.println("集合中包含 "+index+ " 的信息");
    }
  }
}

运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java中初始化List的5种方法示例

    前言 List是java重要的数据结构之一,我们经常接触到的有ArrayList.Vector和LinkedList三种,他们都继承来自java.util.Collection接口,类图如下 Java 中经常需要使用到 List,下面简单介绍几种常见的初始化方式. 1.构造 List 后使用 List.add 初始化 这是最常规的做法,用起来不太方便. 2.使用 {{}} 双括号语法 这种方式相对方便了一些. 外层的{}定义了一个 LinkedList 的匿名内部类.内层的{}的定义了一个实例初

  • Java JSON转成List结构数据

    先要引入对应的jar,然后调用net.sf.json库的 ObjectMapper mapper = new ObjectMapper(); JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class); /*List<FormModel> writUnionFormList = JSON.parseArray(params, FormM

  • Java中对List去重 Stream去重的解决方法

    问题 当下互联网技术成熟,越来越多的趋向去中心化.分布式.流计算,使得很多以前在数据库侧做的事情放到了Java端.今天有人问道,如果数据库字段没有索引,那么应该如何根据该字段去重?大家都一致认为用Java来做,但怎么做呢? 解答 忽然想起以前写过list去重的文章,找出来一看.做法就是将list中对象的hashcode和equals方法重写,然后丢到HashSet里,然后取出来.这是最初刚学Java的时候像被字典一样背写出来的答案.就比如面试,面过号称做了3年Java的人,问Set和HashMa

  • 如何实现java8 list按照元素的某个字段去重

    list 按照元素的某个字段去重 @Data @AllArgsConstructor @NoArgsConstructor public class Student { private Integer age; private String name; } 测试数据 List<Student> studentList = Lists.newArrayList(); studentList.add(new Student(28, "river")); studentList.

  • Java判断2个List集合是否相等(不考虑元素的顺序)

    现在有两个对象,他们的一个属性是list,很明显两个对象的list里面的对象,都是相等的,只是这2个list里面的顺序不一致,导致这2个对象被判断为不相等啦,这就是问题,现在要解决这个问题. 问题图如下: 可以看到这2个对象的呢个list属性里面数据,咱看起来是一样的,但是经过equals之后,返回的是false. 所以,需要自己重写equals方法和hashcode方法,这2个方法一般是一起重写的. 然后,问题的关键就在于,怎么判断2个list集合是否相等.不考虑顺序. 看代码: 先是这2个对

  • Java中List add添加不同类型元素的讲解

    问题: 今天看java的list ,list后面的<> 里面可以填多种类型,但是如果不填写类型那就默认为 Object 类型. 所有我门 add 到 list 里的 数据都会被转换成 Object 类型. 而当我门再从list 中取出该数据时,就会发现数据类型已经改变. 解答 java集合中 能添加不同类型的元素其实不同类型的元素,只是地一定层次是不同元素,根本上都继承于Object类,本质上还是同一类型的元素. List<Object> list = new ArrayList&

  • java8快速实现List转map 、分组、过滤等操作

    利用java8新特性,可以用简洁高效的代码来实现一些数据处理. 定义1个Apple对象: public class Apple { private Integer id; private String name; private BigDecimal money; private Integer num; public Apple(Integer id, String name, BigDecimal money, Integer num) { this.id = id; this.name =

  • Java中List集合的遍历实例详解

     一.对List的遍历有三种方式   List<String> list = new ArrayList<String>(); list.add("testone"); list.add("testtwo"); ... 第一种: for(Iterator<String> it = list.iterator(); it.hasNext(); ) { .... } 这种方式在循环执行过程中会进行数据锁定,    性能稍差,    同

  • Java用list储存,遍历,查询指定信息过程详解

    需求说明 实现思路 见代码注释 代码内容 使用list储存,遍历,查询,删除 import java.util.ArrayList; import java.util.List; /** * @auther::9527 * @Description: 第七题 * @program: 多线程 * @create: 2019-08-09 23:39 */ public class Seventh { public static void main(String[] args) { //初始化企鹅信息

  • java执行SQL语句实现查询的通用方法详解

    完成SQL查询 并将查询结果放入Vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static <T> Vector<T> executeQuery(Class<T> clazz, String sql, Object... args) { Connection conn = null; PreparedStatement preparedstatement = null; ResultSet rs = null; Vector<

  • java开发分布式服务框架Dubbo暴露服务过程详解

    目录 Dubbo服务暴露机制 前言 服务暴露流程 源码解析 本地暴露 远程暴露 Dubbo服务暴露机制 前言 在进行服务暴露机制的分析之前,必须谈谈什么是URL,在Dubbo服务暴露过程中URL是无处不在的,贯穿了整个过程. 一般情况下,URL指的是统一资源定位符,标准格式如下: protocol://host:port/path?key1=value1&key2=value2 Dubbo就是用这种URL的方式来作为约定的参数类型,服务之间也是用URL来进行交互. Dubbo用URL作为配置总线

  • Java判断用户名和密码是否符合要求过程详解

    这篇文章主要介绍了Java判断用户名和密码过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 假设在某仓库管理系统的登录界面中需要输入用户名和密码,其中用户名只能由 6~10 位数字组成,密码只能有 6 位,任何不符合用户名或者密码要求的情况都视为异常,并且需要捕获并处理该异常. 下面使用自定义异常类来完成对用户登录信息的验证功能,实现步骤如下. (1) 编写自定义异常类 LoginException,该类继承自 Exception.在 L

  • java开发分布式服务框架Dubbo服务引用过程详解

    目录 大致流程 服务引用策略 服务引用的三种方式 服务引入流程解析 总结 大致流程 Provider将服务暴露出来并且注册到注册中心,而Consumer通过注册中心获取Provider的信息,之后将自己封装成一个调用类去与Provider进行交互. 首先需要将所有调用转化为Dubbo中我们熟悉的Invoker,再通过代理类去远程获取服务. 大致流程如下: 服务引用策略 服务的引用和服务的暴露原理相似,都是Spring自定义标签机制解析生成对应的Bean,在之前服务暴露使用到的Provider S

  • mysql语句查询用户权限过程详解

    在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限.数据库层级权限.表层级别权限.列层级别权限.子程序层级权限.具体分类如下: 全局层级 全局权限适用于一个给定服务器中的所有数据库.这些权限存储在mysql.user表中.GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限. 数据库层级 数据库权限适用于一个给定数据库中的所有目标.这些权限存储在mysql.db和mysql.host表中.GRANT ALL ON db_na

  • python selenium爬取斗鱼所有直播房间信息过程详解

    还是分析一下大体的流程: 首先还是Chrome浏览器抓包分析元素,这是网址:https://www.douyu.com/directory/all 发现所有房间的信息都是保存在一个无序列表中的li中,所以我们可以先获取一个装有li的element对象的列表,然后在对每个element逐一操作 分析斗鱼的翻页,有一个下一页按钮,是个li,class="dy-Pagination-item-custom" ,但是当烦到最后一页的时候,class="dy-Pagination-di

  • Java中map遍历方式的选择问题详解

    1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率.那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value.遍历key.遍历value等不同场景下的差异,我试着进行了一些对比测试. 2. 对比测试 一开始只进行了简单的测试,但结果却表明k

  • Java Fluent Mybatis 聚合查询与apply方法详解流程篇

    前言 接着上一篇文章:Java Fluent Mybatis 分页查询与sql日志输出详解流程篇 我把分页已经调整好了,现在实验一下官方给出的聚合查询方法. GitHub代码仓库:GitHub仓库 数据准备 为了聚合查询的条件,添加了几条数据. MIN 我们试着获取最小的年龄. 方法实现 @Override public Integer getAgeMin() { Map<String, Object> result = testFluentMybatisMapper .findOneMap(

  • Java Iterator接口遍历单列集合迭代器原理详解

    这篇文章主要介绍了Java Iterator接口遍历单列集合迭代器原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Iterator接口概述 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator . Iterator 接口也是Java集合中的一员,但它与 Collection . Map 接口有所不同,Collection 接口与 Map 接口主要用于存储元素,而 Iter

随机推荐