ListGetandSetDemo 集合操作get set remove add方法

/**
 * 集合操作 --线性表 概念: List是Collection的子接口,用于定义线性表数据结构.
 * 可以将List理解为存放数据的数组.只不过个数可以动态的删除和增加.
 *
 * List有两个常用的实现类,ArrayList和LinkedList. 两者在功能上相同,只是性能上有些差异.
 * ArrayList是用动态数组的方式体现,更适合随机访问.
 * LinkedList是用链表的方式体现,更适合增删插入. 如果对性能要求不苛刻,可以忽略性能差异.
 *
 * List除了继承Collection的方法外,还针对线性表的 数据结构定义了一系列方法.
 * 最常用的get,set方法.
 * E get(intindex) 获取集合中指定下标对应的元素,从0开始
 * E set(int index,E elments) 将给定的元素存入到指定的位置,并返回原来的元素
 *
 * -----------------------------------------------------------------------------
    案例1 使用List的set方法和get方法设置和获取集合中的元素:
 *
 * 1) 创建List接口的引用list,使该引用指向ArrayList的实例。
 * 2)将字符串“java”、“cpp”、“php”、“c#”、“objective-c”放入集合list中。
 * 3)使用List接口提供的get方法和size方法遍历集合list,并将每一个字符串元素转换成大写。
 * 4)将索引位置为1的元素替换为c++,并输出被替换掉的元素以及集合list。
  5) 交换集合list中索引位置为1和索引位置为3的元素。
 */
public class ListGetandSetDemo {

    public static void main(String[] args) {
        /* 案例1 使用List的set方法和get方法设置和获取集合中的元素 */
        //1) 创建List接口的引用list,使该引用指向ArrayList的实例。
        List<String> list = new ArrayList<String>();

        //2) 将字符串“java”、“cpp”、“php”、“c#”、“objective-c”放入集合list中。
        list.add("java");
        list.add("cpp");
        list.add("php");
        list.add("c#");
        list.add("objective-c");

        //3) 使用List接口提供的get方法和size方法遍历集合list,并将每一个字符串元素转换成大写。
        for (int i = 0; i < list.size(); i++) {
            String getStr = list.get(i);
            System.out.println(getStr.toUpperCase());
        }

        //4)将索引位置为1的元素替换为c++,并输出被替换掉的元素以及集合list。
        String replaceStr = list.set(1, "c++");
        System.out.println("替换掉的元素为: "+replaceStr);
        System.out.println("list替换之后的内容为: "+list);
        /*输出结果:
         *     替换掉的元素为: cpp
            list替换之后的内容为: [java, c++, php, c#, objective-c]
         */

        //5) 交换集合list中索引位置为1和索引位置为3的元素。
        String temp = list.set(1, "temp");
        temp = list.set(3,temp);
        temp = list.set(1, temp);
        System.out.println("list替换之后的内容为: "+list);
        // list.set(1, list.set(3, list.get(1))); 简化书写
    }
}

List根据下标的操作还支持插入和删除

/**
 * List根据下标的操作还支持插入和删除
 * void add(int index,E elements)
 * 将给定的元素插入到指定的位置,原位置及后续元素都顺序向后移
 * E remove (int index)
 * 删除给定的下标的元素,并返回.
 *
案例  向List集合的指定索引位置插入元素以及移除指定索引位置的元素,详细要求如下:
1) 创建List接口的引用list,使该引用指向ArrayList的实例;将字符串“java”、 “c#”放入集合list中。
2) 在索引位置为1处,插入字符串元素“cpp”。
3) 移除索引位置为2的元素。
 *
 */
public class ListAddAndDelDemo {

    public static void main(String[] args) {
        /* 案例1  向List集合的指定索引位置插入元素以及移除指定索引位置的元素 */
        //1) 创建List接口的引用list,使该引用指向ArrayList的实例;将字符串“java”、 “c#”放入集合list中。
        List<String> list = new ArrayList<String>();
        list.add("java");
        list.add("c#");
        System.out.println(list);    //[java, c#]

        //2) 在索引位置为1处,插入字符串元素“cpp”。
        list.add(1,"cpp");
        /*List重载了带有索引位置参数的add方法,该方法将对象插入集合的指定索引位置
         * (相当于前插,可以理解为对象插入集合后其索引为指定的参数)。
         * 重载Collection接口的add方法. */
        System.out.println(list);    //[java, cpp, c#]

        //3) 移除索引位置为2的元素。
        list.remove(2);
        /*List重载的带有索引位置参数的remove方法,移除list集合中索引位置为2的元素
         *重载Collection接口的remove方法.*/
        System.out.println(list);    //[java, cpp]
    }
}

时间: 2024-10-15 11:25:12

ListGetandSetDemo 集合操作get set remove add方法的相关文章

为什么在foreach循环中不要对元素进行remove/add操作?

目录 前言 正文 为什么结果如此不同? remove/add方法? 如何解决? 前言 在阿里巴巴Java开发手册中,有下面这样的规定: 这篇文章我们就来深入探讨其中的原因. 正文 为什么结果如此不同? 我们先来看看前言中的反例会出现什么意料之外的结果: ---------------------------------------------------------------------------------------------------------------------------

Python学习笔记-Day3-set集合操作

set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(tuple),6.字典(dict),7.集合(set),8.布尔型(bool) 1.集合创建 2.集合操作   2.1 set.add 添加元素 往set中添加一个元素只有set中不存在该元素时,才会加入该元素   2.2 set.clear 清空所有元素 从set中移除所有元素   2.3 set.

foreach循环里不能remove/add元素的原理

foreach循环 ? ?? foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素.Java语言从JDK 1.5.0开始引入foreach循环.在遍历数组.集合方面,foreach为开发人员提供了极大的方便.通常也被称之为增强for循环. ? ?? 在日常开发中,foreach循环用的非常多,但是有一点要非常小心,就是不能在这个循环里对数组或者集合里的元素进行remove或者add操作,否则会抛出java.util.Concurr

为什么阿里禁止在 foreach 循环里进行元素的 remove/add 操作

在阿里巴巴Java开发手册中,有这样一条规定:但是手册中并没有给出具体原因,本文就来深入分析一下该规定背后的思考.1.foreach循环foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素.Java语言从JDK 1.5.0开始引入foreach循环.在遍历数组.集合方面,foreach为开发人员提供了极大的方便.通常也被称之为增强for循环.foreach 语法格式如下: for(元素类型t 元素变量x : 遍历对象obj){ 引

为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作

这个问题我在实际写代码中也遇到过,当时还很疑惑,刚看到这里有一些解释得挺清楚,记录一下: 原文地址为:https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650123395&idx=1&sn=b089eac4f561f58ee8a92602db17f577&chksm=f36bb1a2c41c38b4f36c1a84f205e188a6a8aa2684f316e4dcb8d1162b6e94b970c670b2e5b

不要在foreach循环里进行元素的remove/add操作

不要在 foreach 循环里进行元素的 remove/add 操作.remove 元素请使用 Iterator 方式. 反例: public class ForeachTest { private List<String> list = new ArrayList<String>(); @Test public void forTest() { list.add("1"); list.add("2"); for(String temp :

java 17 - 6 TreeSet集合及其add()方法的源码解析

TreeSet:能够对元素按照某种规则进行排序. 排序有两种方式 A:自然排序 B:比较器排序 TreeSet集合的特点:排序和唯一 1 public class TreeSetDemo { 2 public static void main(String[] args) { 3 // 创建集合对象 4 // 自然顺序进行排序 5 TreeSet<Integer> ts = new TreeSet<Integer>(); 6 7 // 创建元素并添加 8 // 20,18,23,2

TreeSet集合的add()方法源码解析(01.Integer自然排序)

>TreeSet集合使用实例 >TreeSet集合的红黑树 存储与取出(图) >TreeSet的add()方法源码     TreeSet集合使用实例 package cn.itcast_05; import java.util.TreeSet; /* * TreeSet:能够对元素按照某种规则进行排序. * 排序有两种方式 * A:自然排序 * B:比较器排序 * * TreeSet集合的特点:排序和唯一 * * 通过观察TreeSet的add()方法,我们知道最终要看TreeMap的

HashSet——add remove contains方法底层代码分析(hashCode equals 方法的重写)

引言:我们都知道HashSet这个类有add   remove   contains方法,但是我们要深刻理解到底是怎么判断它是否重复加入了,什么时候才移除,什么时候才算是包括????????? add()方法 首先我们看下这个代码 1 package com.xt.set; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 import java.util.Set; 6 7 public class AddTest { 8