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()); }*/ } }
相关推荐
详细描述map、list、set的常用子类特性,各个场景的适用。
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。
集合的家族(1)List集合—(有序,可重复)(2)Set集合—(无序,唯一) 一. 为什么要有集合? 集合是为了弥补数组的不足而存在。 集合相对于数组优势在于:a.集合的长度可以动态改变;b.集合中能够存放多种类型的数据。 ...
集合是Java里面最重要的一部分,也是最常用的了。能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
Java里面最重要,最常用也就是集合一部分了。能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
java+dwr框架:dwr框架入门demo,演示用dwrAjax实现List/Map/ Set等常用集合内容展示
以下给出它的一些常用方法介绍 成员 类型 说明 Add 方法 将指定的元素添加到集合中 Clear 方法 清空集合中的所有元素 Contains 方法 确定某元素是否在HashSet中 Exists 方法 确定HashSet是否包含于指定...
主要内容 数据结构 List集合 Set集合 Collections 数据存储的常用结构有:栈、队列、数组、链表和红黑树
包装类 String 类 字符串的特性 String 类的常见方法 StringBuffer 类 Math 类 Arrays 类 System 类 日期类包括1代2代3代 集合 集合的框架体系 Collection 接口和常用方法 Collection 接口实现类的特点 List 接口和...
Redis的Set是String类型的无序集合,不同于List,Set中的元素不可以重复。Redis 中集合(Set)是通过哈希表(HashTable)实现的,所以添加,删除,查找的复杂度都是 O(1)。 Set的常用操作命令总结 图片来源:...
掌握List集合、Set集合、Map集合的使用以及Iterator迭代器和foreach循环的使用 了解常用的集合类 熟悉泛型的使用
Collection接口的常用方法 1、add(Object obj):向集合中添加一个元素obj; 2、addAll(Collection c):将集合c中的所有元素添加到该集合中; 3、remove(Object obj):从集合中移除一个元素obj; 4、removeAll...
Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java...本教程详细解释了关于Java中的集合是如何实现的, 以及他们的实现原理等,涉及的部分内容:Collection , List ,Set , Map , 集合, 框架等。
Java集合框架概述 Java集合框架是一个抽象数据...Collection接口有两个重要的子接口:List和Set。 2、List接口 List接口是有序集合,可以存储重复元素。它定义了有序的列表,可以根据索引位置访问列表中的元素。List
Collection体系集合1.1 List 表① ArrayList 类(数组)② Vector 类(数组、线程同步)③ LinkedList 类(链表)④ CopyOnWriteArrayList 类(线程安全且高效的List)1.2 Set 集合① HashSet 类(HashCode)② ...
文章目录集合容器概述什么是集合集合的特点集合和数组的区别使用集合框架的好处常用的集合类有哪些?List,Set,Map三者的区别?List、Set、Map 是否继承自 Collection 接口?List、Map、Set 三个接口存取元素时,各...
java集合类知识总结--思维导图文件xmind xmind文件类型 总结了java常用集合相关问题 包括map、set、list、数组等
65、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别 17 66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几...