import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class TestList { public List studentList; public static void main(String[] args) { Classes c = new Classes(); //向集合中逐个添加元素,两种方法add(对象),add(索引,对象) List list = new ArrayList(); Stu s1 = new Stu("1","张三"); list.add(s1);//向List集合中添加元素 Stu s2 = new Stu("2", "李四"); list.add(s2); Stu s3 = new Stu("3", "王五"); list.add(0, s3);//向List集合中指定位置添加元素 Stu s4 = new Stu("4", "赵六"); System.out.println("list结合中学生的个数:" + list.size()); list.add(list.size(),s4);//向List集合后面添加元素 //list.add(5,s4);//会报错:java.lang.IndexOutOfBoundsException: Index: 5, Size: 4 //向集合中一次添加多个元素,两种方法addAll(对象集合),addAll(索引,对象集合) Stu[] stuArray = {new Stu("5", "小名"),new Stu("6", "小红")}; list.addAll(Arrays.asList(stuArray));//向集合后面添加多个对象 Stu[] stuArray2 = {new Stu("7", "tom"),new Stu("8", "jack")}; list.addAll(0, Arrays.asList(stuArray2)); System.out.println("*******获取list中对象的方法一*******"); //增强for循环获取list中对象 for (Object o : list) { Stu s = (Stu)o; //在没有存入没有泛型的集合中的对象,到了集合中就被转换为了Object对象,所以在获取本集合中的某个对象时需要强制类型转换 System.out.println(s.getId()+ ":" + s.getName()); } //list.clear();//清除list中的所有对象 System.out.println("*******修改list中对象的方法*******");//使用set方法 list.set(0, new Stu("0", "Alex")); //第0位置上的对象本为tom,通过set方法被修改为了Alex System.out.println("*******获取list中对象的方法二*******"); //普通for循环获取list中对象 for (int i = 0; i < list.size(); i++) { Stu s = (Stu) list.get(i);//获取list中某个位置上的对象 System.out.println(s.getId()+ ":" + s.getName()); } System.out.println("***********删除list中对象**************"); Stu s = (Stu) list.get(0); list.remove(s);//通过对象删除 list.remove(0);//通过索引删除 list.removeAll(Arrays.asList(stuArray));//删除多个元素 System.out.println("*******获取list中对象的方法三*******"); //使用迭代器获取list中对象 Iterator it = list.iterator(); while(it.hasNext()) { Stu stu = (Stu)it.next(); System.out.println(stu.getId()+ ":" + stu.getName()); } System.out.println("*********使用泛型************"); List<Stu> stuList = new ArrayList<Stu>(); stuList.add(s1); stuList.add(s2); for (Stu stu : stuList) {//使用泛型就可以去掉类型转换过程了 System.out.println(stu.getId()+ ":" + stu.getName()); } for (int i = 0; i < stuList.size(); i++) { Stu stu = stuList.get(i);//获取stuList中某个位置上的对象 System.out.println(stu.getId()+ ":" + stu.getName()); } } }
List集合是有序的,可以重复的,所以可以通过下标的形式获取某个元素,可存储多个null值,在获取时要注意判断;
Set集合是无序的,不可以重复(每一个值都是唯一的),所以不可以通过下标的形式获取某个元素,可存储一个null值。
import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class TestSet { public Set<Stu> stuSet; public static void main(String[] args) { Set<Stu> stuSet = new HashSet<Stu>(); Stu s1 = new Stu("1","张三"); stuSet.add(s1);//向List集合中添加元素 Stu s2 = new Stu("2", "李四"); Stu s3 = new Stu("3", "王五"); Stu[] stuArray = {s2,s3}; //stuSet.add(0, s3);//会报错的,set是无序的,故没有Set提供的方法中均没有下标的 stuSet.addAll(Arrays.asList(stuArray)); /*stuSet.add(null);set中允许存储null值,但是只能有一个 stuSet.add(null);*/ stuSet.add(s1); System.out.println(stuSet.size());//结果为3,set是不可重复的,s1已添加进入了 /*Iterator<Stu> it = stuSet.iterator(); while(it.hasNext()) { Stu stu = it.next(); //输出多次的结果不相同,set无序,所以每次结果可能会不一样 System.out.println(stu.getId()+ ":" + stu.getName()); }*/ } }
相关推荐
### 集合概述:set、List、Map #### 一、集合框架概述 ##### 1.1.1 容器简介 在Java编程中,集合框架是一个非常重要的概念,它提供了一种灵活的方式来存储、操作和管理不同类型的对象集合。集合框架的主要目标是...
详细描述map、list、set的常用子类特性,各个场景的适用。
根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...
### Java集合Collection、List、Set、Map使用详解 #### 1. 集合框架概述 集合框架是Java编程语言中最基本且最重要的组成部分之一。它提供了处理数据集合的强大工具,这些工具不仅支持基本操作(如添加、删除和查找...
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
#### 三、List集合常用方法 - `get(int index)`:根据索引获取元素。 - `set(int index, E element)`:将指定位置的元素替换为新元素。 - `remove(int index)`:移除指定位置的元素并返回被移除的元素。 - `add(int...
当需要将数据库或其他数据源中的数据绑定到下拉框时,通常会使用列表(List)集合来存储这些数据。本篇文章将详细介绍如何在C#中实现下拉框与list集合的绑定,以及相关的控件绑定技巧。 首先,我们需要创建一个表示...
Java 集合框架中 List、Set、Map 的用法和区别 Java 集合框架(Java Collections Framework)是 Java 语言中的一个重要组件,提供了一些基本的数据结构和算法来操作和存储数据。其中,List、Set、Map 是三个非常...
### Java数组去重与List集合去重的常用方法总结 #### 一、Java数组去重方法 在实际的开发工作中,经常会遇到需要处理数组中重复元素的问题。下面将详细介绍两种常用的数组去重方法。 ##### 方法一:For双循环法 ...
List 集合的特有方法有:add(index, value) 在 index 位置添加值,remove(index) 移除 index 位置的值,set(index, value) 将 index 位置的值替换为 value,get(index) 获取指定索引处的值。 Set 集合的特点是散列...
本文将详细解释Java集合框架的实现原理、Collection、List、Set、Map四大类的使用方法和原理。 1. 集合框架概述 Java集合框架是一个容器,用于存储和操作对象的集合。这个框架提供了多种类型的容器,每种容器都有...
本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...
在Java中,集合主要分为三大接口:List、Set和Map。这些接口各有特点,适用于不同的应用场景。 一、List接口 List接口是单列集合的子接口,它允许存储重复的元素,并且元素具有顺序性。List接口提供了丰富的操作...
Java集合排序及Java集合类...本文详细解释了Java集合框架的实现原理、Collection、List、Set、Map四个接口的定义和实现原理,以及它们的常用方法。同时,本文还对Java集合框架的设计理念和实现原理进行了详细的解释。
在.NET编程环境中,List集合是常用的数据结构,用于存储一系列有序的对象。当我们需要将两个或多个List集合中的元素根据特定条件进行匹配并合并时,可以使用内连接(Inner Join)操作。内连接会返回两个集合中满足...
Java 集合框架的主要组件包括 Collection、List、Set、Map 等。 1.1 容器简介 容器是指可以存储对象的对象。 Java 集合框架中有多种类型的容器,每种容器都有其特点和用途。常见的容器有 Collection、List、Set、...
Java集合框架是Java编程中不可或缺的部分,而Collections工具类则是这个框架中的一个重要工具,它提供了大量静态方法,用于操作各种集合接口(如List、Set、Queue等)的实例。本教程将深入探讨Collections工具类中的...
### List常用方法详解 在Java编程语言中,`List`接口是集合框架的重要组成部分,它提供了有序元素集合的实现,并允许重复元素的存在。本文将详细解释`List`接口中的常用方法,帮助开发者更好地理解和运用这些功能...
描述中提到的“**再做List数据集合打印或数据绑定时,需要把List集合分组筛选**”意味着在处理List数据并准备显示或输出时,可能需要根据某些条件对数据进行分类,然后可能进一步筛选出特定的子集。这可以通过Linq的...