list.set交换数据需要(or不需要)添加其他中间变量,两个例子告诉你

 说明:set()方法是来修改指定位置的元素

两个参数,第一个参数是要修改的元素的索引,第二个参数是要设置的新值。

案例一:当链表中传入的是字符串时:

 public static void main(String[] args) {List list = new LinkedList();list.add("鱼香肉丝");list.add("粉蒸肉");list.add("梅干菜扣肉");System.out.println("=======迭代器遍历======");Iterator ito = list.iterator();while (ito.hasNext()) {Object o = ito.next();System.out.println(o);}//交换前两个元素,正确做法:String str1 = (String)list.get(0);String str2 = (String)list.get(1);list.set(0,str2);list.set(1,str1);//交换前两个元素,错误示例//list.set(0,list.get(1));//list.set(1,list.get(0));System.out.println("=======增强for遍历======");for (Object ob : list) {System.out.println(ob);}}

 错误示例:当调用list.get(1)时,便将list.get(0)覆盖了,此时的 list.get(0)="粉蒸肉"。

当然,面对元素较少的List ,你也可以选择重新赋初值,示例如下: 

        list.set(0,"粉蒸肉");list.set(1,"鱼香肉丝");

打印结果:

案例二:当list传入的不是字符串,而是一个对象时:

    public static void main(String[] args) {List list = new LinkedList();
//        List list = new Vector();
//        List list = new ArrayList();list.add(new Book("红楼小梦","曹雪芹",35.5));list.add(new Book("霸王别姬","张艺谋",98.5));list.add(new Book("一代妖姬","未知",30.5));list.add(new Book("前任三传","郑恺",32.5));System.out.println("=======迭代器遍历======");Iterator ito = list.iterator();while (ito.hasNext()) {Object o = ito.next();System.out.println(o);}Book book1 = (Book)list.get(0);Book book2 = (Book)list.get(1);//交换前两个元素list.set(0,book2);list.set(1,book1);System.out.println("=======增强for遍历======");for (Object ob : list) {System.out.println(ob);}}

此时,是创建的Book对象,而set()方法中并不会,覆盖赋值后的Book对象,只是对Book实例的引用而已。

打印结果:

小结:

  1. 当想要交换List的元素时,如果面对的对象较少,建议直接赋初值;
  2. 当面对元素较多时,可以将List向下转型,创建新的对象。此时,调用set()方法并不会覆盖对象的地址,只是对对象地址的引用而已。对象地址创建完在中,数据常量池中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160794.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶:控制算法概述

自动驾驶:控制算法概述 常见控制算法PID算法LQR算法MPC算法 自动驾驶控制算法横向控制纵向控制 参考文献 常见控制算法 PID算法 PID(Proportional-Integral-Derivative)控制是一种经典的反馈控制算法,通常用于稳定性和响应速度要…

docker数据卷+挂载(命令讲解+示例)

在容器中管理数据主要有两种方式: 数据卷(Volumes) 、挂载主机目录 (Bind mounts)。 一、数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用。 特点: 对 数据卷 的修改会立马生效对 …

docker-compose部署elk(8.9.0)并开启ssl认证

docker部署elk并开启ssl认证 docker-compose部署elk部署所需yml文件 —— docker-compose-elk.yml部署配置elasticsearch和kibana并开启ssl配置基础数据认证配置elasticsearch和kibana开启https访问 配置logstash创建springboot项目进行测试kibana创建视图,查询日志…

Spring5应用之高级注解开发

作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者! 个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏:Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言Conf…

那些年,我们追过的Java BUG

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

icg模块clock gating解析

// 两种形式: 与门形式 或门形式 三个用途: 用于关断时钟,降低功耗用于动态时钟切换是防止毛刺的产生用于时钟分频 解析:与门形式 解析:或门形式

安达发|制造企业生产排产现状和APS系统的解决方案

随着市场竞争的加剧,制造业企业面临着生产效率、成本控制和客户满意度等方面的巟大压力。在这种背景下,生产排产作为制造业的核心环节,对企业的生产经营具有重要意义。本文将针对制造业的生产排产现状进行分析,并提出相应的APS系统…

Android 远程调用服务之 AIDL

目录 一、AIDL 是什么?二、为什么要使用 AIDL? 1、使用 AIDL 是为了跨进程调用第三方服务? 2、使用 AIDL 是为了向第三方服务传输数据/参数? 3、使用 AIDL 是为了获取第三方服务直接或者异步返回的数据?三…

户外运动盛行,运动品牌如何利用软文推广脱颖而出?

全民健康意识的提升和城市居民对亲近自然的渴望带来户外运动的盛行,这也使运动品牌的市场保持强劲发展势头,那么在激烈的市场竞争中,运动品牌应该如何脱颖而出呢?下面就让媒介盒子告诉你! 一、 分享户外运动干货 用户…

【微信小程序开发】布局(附有首页布局案例)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于小程序的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.弹性布局以及相关样式 1.什么是flex布…

jmeter 解决查看结果树响应内容中文乱码问题

jmeter 解决查看结果树响应内容中文乱码问题 查看结果树中,接口响应内容中,包含中文,显示乱码; 临时解决方法,添加BeanShell 后置处理程序,添加内容prev.setDataEncoding("utf-8"); 运行压测…

【22】c++设计模式——>外观模式

外观模式定义 为复杂系统提供一个简化接口&#xff0c;它通过创建一个高层接口(外观)&#xff0c;将多个子系统的复杂操作封装起来&#xff0c;以便客户端更容易使用。 简单实现 #include<iostream>// 子系统类 class SubsystemA { public:void operationA() {std::co…

Linux 的常用命令大全

常用命令 ls:查看目录与文件pwd:显示当前目录cd:切换目录绝对路径与相对路径touch:创建空文件tab :补全ctrl c :重新输入cat:查看文件内容mkdir:创建目录rm:删除cp:拷贝mv:移动或重命名文件和目录man:帮助命令lessheadtailvim:文本编辑grep:搜索指定文本模式或正则表达式ps:显…

Cisdem Video Player for mac(高清视频播放器) v5.6.0中文版

Cisdem Video Player mac是一款功能强大的视频播放器&#xff0c;适用于 macOS 平台。它可用于播放不同格式的视频文件&#xff0c;并具有一些实用的特性和功能。 Cisdem Video Player mac 中文版软件特点 多格式支持&#xff1a;Cisdem Video Player 支持几乎所有常见的视频格…

Apache DolphinScheduler 官方发布3.2.0版本!大数据调度【重磅更新】

今天&#xff0c;Apache DolphinScheduler 3.2.0 版本在万众期待中终于发布了&#xff01;在之前的预告中&#xff0c;包括《重磅预告&#xff01;Apache DolphinScheduler 3.2.0 新功能“剧透”》、《3.2.0 版本预告&#xff01;Apache DolphinScheduler API 增强相关功能》、…

在 rider 里用配置 Perforce(P4)的注意事项

整个配置界面里&#xff0c;关键就配2处位置&#xff0c;但是都有些误导性。 1是连接形参的4个参数都得填&#xff0c;字符集看你项目的要求&#xff0c;这里工作区其实指的是你的工作空间&#xff0c;还不如显示英文的 Workspace 呢&#xff0c;搞得我一开始没填&#xff0c;…

设计模式_迭代器模式

迭代器模式 介绍 设计模式定义案例迭代器模式行为型&#xff1a;关注对象与行为的分离 提供了一种统一的方式来访问多个不同的集合两个集合&#xff1a;使用了不同的数据存储方式 学生 和 警察 查询显示出集合的内容 &#xff0c;使用相同的代码 问题堆积在哪里解决办法不同…

安达发|AI算法全方位打造制造业AI智能化工厂的超级大脑

随着科技的不断进步&#xff0c;人工智能已经成为了我们生活中不可或缺的一部分。在制造业中&#xff0c;AI技术也正在发挥着越来越重要的作用。而APS系统&#xff0c;则是AI技术在制造业中的一个重要应用。 那么&#xff0c;什么是APS系统呢&#xff1f;简单来说&#xff0c;A…

AI 悄然变天:这家平台为何能俘获众多明星大模型「芳心」?

整个AI领域&#xff0c;GPT-4 发布无疑成为载入 AI 史册的大事件。但其还留下来一些发展空间&#xff0c;其不可能把所有的事情都做完。比如&#xff0c;涉及小数、分数的运算&#xff0c;GPT-4 可能给不出正确答案&#xff08;其多位乘法运算准确率仅为 4.3%&#xff09;。 可…

spring java 动态获取consul K/V

spring java 动态获取consul K/V 1.springConsul配置kv路径 spring:cloud:consul:enabled: ${CONSUL_ENABLED:true}host: ${CONSUL_HOST:localhost}port: ${CONSUL_PORT:8500}config:prefix: ${CONSUL_CONFIG_PREFIX:config} #consul kv前缀fail-fast: ${CONFIG_FAIL_FAST:fa…