Java集合类实例解析

合集下载

java集合编程练习题及答案

java集合编程练习题及答案

java集合编程练习题及答案题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{public static void main{int i=0;forSystem.out.println);}public static int f{ifreturn 1;elsereturn f+f;}}或public class exp2{public static void main{int i=0;math mymath = new math;forSystem.out.println);}}class math{public int f{ifreturn 1;elsereturn f+f;}}题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt,如果能被整除,则表明此数不是素数,反之是素数。

public class exp2{public static void main{int i=0;math mymath = new math;forif==true)System.out.println;}}class math{public int f{ifreturn 1;elsereturn f+f;}public boolean iszhishu{for}if return false; return true; }题目:打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

java求两个集合的交集和并集,比较器

java求两个集合的交集和并集,比较器

java求两个集合的交集和并集,⽐较器求连个集合的交集:import java.util.ArrayList;import java.util.List;public class TestCollection {public static void main(String[] args) {List<String> strList = new ArrayList<String>();List<String> strList2 = new ArrayList<String>();for(int i = 0; i < 10; i ++) {strList.add("aaa>>" + i);strList2.add("aaa>>" + (10 - i));}//求出交集strList2.retainAll(strList);System.out.println("交集⼤⼩:" + strList2.size());for(int i = 0; i < strList2.size(); i++) {System.out.println(strList2.get(i));}}}求两个集合的并集:import java.util.ArrayList;import java.util.List;public class TestCollection {public static void main(String[] args) {List<String> strList = new ArrayList<String>();List<String> strList2 = new ArrayList<String>();for(int i = 0; i < 10; i ++) {strList.add("aaa>>" + i);strList2.add("aaa>>" + (10 - i));}//求出并集strList2.removeAll(strList);strList2.addAll(strList);System.out.println("并集⼤⼩:" + strList2.size());for(int i = 0; i < strList2.size(); i++) {System.out.println(strList2.get(i));}}}3.差集:由属于A⼜不属于B的元素组成的叫差集list1.remove(list2);4.去重并排序package twolist;import java.util.Collections;import parator;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Set;public class ListMapSort {/*** @param args*/public static void main(String[] args) {// TODO ⾃动⽣成⽅法存根List<Map<String,Object>> listMap1 = new LinkedList<Map<String,Object>>();Map<String,Object> map = new HashMap<String, Object>();map.put("date", 20121010);listMap1.add(map);map = new HashMap<String, Object>();map.put("date", 20011213);listMap1.add(map);listMap1.add(map);map = new HashMap<String, Object>();map.put("date", 20130502);listMap1.add(map);System.out.println("原始"+listMap1);List<Map<String,Object>> listMap2 = new LinkedList<Map<String,Object>>();Set<Map> setMap = new HashSet<Map>();for(Map<String,Object> map1 : listMap1){if(setMap.add(map1)){listMap2.add(map1);}}System.out.println("去重"+listMap2);Collections.sort(listMap2, new Comparator<Map<String,Object>>(){public int compare(Map<String,Object> o1,Map<String,Object> o2){return o1.get("date").toString().compareTo(o2.get("date").toString());}});System.out.println("排序:"+listMap2);}}通常对象之间的⽐较可以从两个⽅⾯去看:第⼀个⽅⾯:对象的地址是否⼀样,也就是是否引⽤⾃同⼀个对象。

java中集合的概念

java中集合的概念

java中集合的概念Java中的集合是一种非常重要的数据结构,用于存储和操作一组对象。

集合框架包含了许多类和接口,可以方便地进行数据的存储、查询、排序等操作,使得Java程序开发变得更加高效和便捷。

在本文中,我们将逐步介绍Java中集合的概念和用法。

一、集合框架概述Java中的集合框架是一个包含了多个接口和类的层次结构,用于表示和操作一组对象。

集合框架包含了通用的集合接口和实现,以及特定的集合类和接口,如List、Set、Map等。

集合框架的接口和类都是通过泛型实现的,可以存储任意类型的对象,比如基本类型和自定义类型的对象。

二、集合框架的接口Java中的集合框架包含了多个接口,其中包括:1. Collection:代表一组对象的集合,是其他集合接口的父接口。

它定义了一些通用的方法,如添加、删除、迭代等。

2. List:代表有序的集合,其中每个元素都有一个对应的索引。

List允许重复元素出现,并且可以通过索引访问、添加、删除元素。

3. Set:代表无序的集合,其中每个元素都是唯一的。

Set不允许重复的元素出现,可以用来去重。

4. Map:代表一组键值对的集合,其中每个键都是唯一的。

Map 允许多个值对应同一个键,可以用来快速查找和存储数据。

三、集合类的实现Java中的集合类可以通过实现集合接口来实现。

如ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等都是集合类的实现,我们可以通过这些集合类来方便地实现对一组对象的操作。

例如:1. 使用ArrayList来实现List接口,可以进行元素的添加、删除、查询等操作:List<String> list = new ArrayList<>();list.add("Alice");list.add("Bob");System.out.println(list.get(1));2. 使用HashSet来实现Set接口,可以去重并存储元素:Set<Integer> set = new HashSet<>();set.add(1);set.add(2);set.add(2);System.out.println(set.size());3. 使用HashMap来实现Map接口,可以快速查找并存储数据:Map<String, Integer> hashMap = new HashMap<>(); hashMap.put("Alice", 12);hashMap.put("Bob", 18);System.out.println(hashMap.get("Bob"));四、集合的迭代Java中的集合类都实现了Iterable接口,因此可以使用迭代器来访问集合中的元素。

第6章 集合类(黑马程序员版)

第6章 集合类(黑马程序员版)
案例代码
接下来通过一个案例来学习这些方法的使用,请查看教材文件6-2。
✎ 6.3 List接口
Iterator接口
在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提 供了一个接口Iterator。Iterator接口也是Java集合中的一员,但它与Collection、 Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主 要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代 器。
பைடு நூலகம்
✎ 6.3 List接口
图中,通过两张图描述了LinkedList集合新增元素和删除元素的过程。其中,左 图为新增一个元素,图中的元素1和元素2在集合中彼此为前后关系,在它们之 间新增一个元素时,只需要让元素1记住它后面的元素是新元素,让元素2记住 它前面的元素为新元素就可以了。右图为删除元素,要想删除元素1与元素2之 间的元素3,只需要让元素1与元素2变成前后关系就可以了。由此可见 LinkedList集合具有增删元素效率高的特点。
图中,在调用Iterator的next()方法之前,迭代器的索引位于第一个元素之前,不指 向任何元素,当第一次调用迭代器的next()方法后,迭代器的索引会向后移动一位, 指向第一个元素并将该元素返回,当再次调用next()方法时,迭代器的索引会指向 第二个元素并将该元素返回,依此类推,直到hasNext()方法返回false,表示到达了 集合的末尾,终止对元素的遍历。
☞点击查看本小节知识架构
模拟KTV点歌系统
Set接口
☞点击查看本小节知识架构
模拟新浪微博用户注册
Map接口
☞点击查看本小节知识架构

JavaCollections的emptyList、EMPTY_LIST详解与使用说明

JavaCollections的emptyList、EMPTY_LIST详解与使用说明

JavaCollections的emptyList、EMPTY_LIST详解与使⽤说明⽬录Collections的emptyList、EMPTY_LIST使⽤Collections.emptyList()使⽤注意Collections的emptyList、EMPTY_LIST使⽤今天在看⼤佬写的代码的时候,结果集为空的情况,他返回的不是null,⽽是:return Collections.EMPTY_LIST;我们都知道返回null,很有可能造成空指针异常,可以使⽤emptyList或EMPTY_LIST就可以避免这个问题,除⾮你想捕获这个为空的信息我们在使⽤emptyList空的⽅法返回空集合的时候要注意,这个空集合是不可变的。

空的集合不可以使⽤add⽅法,会报UnsupportedOperationException异常,看如下源码:public void add(int index, E element) {throw new UnsupportedOperationException();}空集合对象不可以使⽤put⽅法,会报IndexOutOfBoundsException异常,看如下源码:public E get(int index) {throw new IndexOutOfBoundsException("Index: "+index);}但是对于for循环都不会发⽣异常,如下的⽰例:List<String> list1 = Collections.emptyList();for(String s:list1) {}for(int i=0;i<list1.size();i++) {}上⾯的两种for循环都可以正常的执⾏,第⼀种foreach循环,实际编译之后会变成迭代器的模式,这样我们就好理解为什么可以正常执⾏;第⼆种是只调⽤了size⽅法,我们可以看到源码直接返回0;public int size() {return 0;}emptyList和EMPTY_LIST的区别,我们看下源码:/*** The empty list (immutable). This list is serializable.** @see #emptyList()*/@SuppressWarnings("unchecked")public static final List EMPTY_LIST = new EmptyList<>();/*** Returns the empty list (immutable). This list is serializable.** <p>This example illustrates the type-safe way to obtain an empty list:* <pre>* List&lt;String&gt; s = Collections.emptyList();* </pre>* Implementation note: Implementations of this method need not* create a separate <tt>List</tt> object for each call. Using this* method is likely to have comparable cost to using the like-named* field. (Unlike this method, the field does not provide type safety.)** @see #EMPTY_LIST* @since 1.5*/@SuppressWarnings("unchecked")public static final <T> List<T> emptyList() {return (List<T>) EMPTY_LIST;}我们看到EMPTY_LIST 是Collections类的⼀个静态常量,⽽emptyList是⽀持泛型的。

java集合的编程题

java集合的编程题

java集合的编程题
当涉及到Java 集合的编程题时,这些问题可以涵盖不同的主题,包括列表、集合、映射等。

以下是一些可能的 Java 集合编程题的例子:
1. List 操作:
•创建一个 ArrayList,向其添加一些元素,然后反转列表中的元素。

•从 ArrayList 中移除所有偶数元素。

2. Set 操作:
•创建一个 HashSet,向其中添加一些元素,然后检查某个元素是否存在。

•合并两个 Set,去除重复元素。

3. Map 操作:
•创建一个 HashMap,将一些键值对添加到其中,然后按键升序或降序遍历。

•从 HashMap 中移除所有值为 null 的项。

4. Queue 操作:
•使用 LinkedList 实现一个简单的队列。

•使用 PriorityQueue 实现一个最小堆。

5. 迭代器操作:
•使用迭代器遍历一个 ArrayList。

•使用增强型 for 循环遍历一个 HashSet。

6. 同步操作:
•创建一个线程安全的 ArrayList。

•使用 Collections.synchronizedMap 创建一个线程安全的映射。

7. 其他集合操作:
•创建一个不可修改的 List。

•创建一个大小固定的 ArrayList。

这些问题可以帮助你熟练使用 Java 集合框架的不同类,理解它们的用法和性能特性。

解决这些问题可以加深你对Java 集合的理解,并提高编程技能。

当然,具体问题的难度和要求可以根据你的需要进行调整。

java8从list集合中取出某一属性的值的集合案例

java8从list集合中取出某一属性的值的集合案例

java8从list集合中取出某⼀属性的值的集合案例我就废话不多说了,⼤家还是直接看代码吧~List<Order> list = new ArrayList<User>();Order o1 = new Order("1","MCS-2019-1123");list.add(o1 );Order o2= new Order("2","MCS-2019-1124");list.add(o2);Order o3= new Order("3","MCS-2019-1125");list.add(o3);List<String> orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());System.out.println("输出单号集合:"+orderNoList);List<String> idList=list.stream().map(Order::getId()).collect(Collectors.toList());System.out.println(idList)结果输出第⼀个:["MCS-2019-1123", "MCS-2019-1124", "MCS-2019-1125"][1, 2, 3]order类:public class Order{String id;String orderNo;public Order(String id, String orderNo) {this.id = id;this.orderNo= orderNo;}public String getId() {return id;}public void setId(String order) {this.id= id;}public String getOrderNo() {return orderNo;}public void setOrderNo(String message) {this.orderNo= orderNo;}}补充知识:java8快速对list集合的筛选计算取值总结在我们⽇常开发过程中,有很多场景需要对list集合进⾏取值筛选,以下是我对常⽤的⼀些知识点进⾏总结⾸先,创建⼀个需要⽤到的对象,例如学⽣对象,有相关字段:姓名,年龄,性别public class Student {private String name;private int age;private String sex;public Student( String name, int age,String sex) {this.age = age; = name;this.sex = sex;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}其次,对这些字段属性进⾏赋值Student s1 = new Student("⼩⾦",20,"⼥");Student s2 = new Student("⼩宋",21,"⼥");Student s3 = new Student("⼩张",25,"男");Student s4 = new Student("⼩王",27,"男");Student s5 = new Student("⼩王",30,"未知");List<Student> list = new ArrayList<>();list.add(s1);list.add(s2);list.add(s3);list.add(s4);list.add(s5);1、遍历-foreach使⽤stream流进⾏foreach遍历list.stream().forEach(student->{//处理逻辑,打印出所有学⽣的姓名System.out.println(student.getName());});运⾏结果:2、筛选listfilter函数的()⾥,应该放逻辑,判断条件,将符合条件的放到resultList中代码如下,筛选集合中所有性别为⼥的学⽣List<Student> resultList = list.stream().filter(student -> Objects.equals(student.getSex(),"⼥")).collect(Collectors.toList()); resultList.stream().forEach(student->{System.out.println(student.getName());});运⾏结果:3、list去重根据性别去重List<Student> unique = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(paring(Student::getSex))), ArrayList::new));unique.stream().forEach(student->{System.out.println(student.getName());});运⾏结果:4、取出list集合对象中某⼀个属性取出每个对象中的姓名组成⼀个新的集合List<String> listStr = list.stream().map(Student::getName).collect(Collectors.toList());去重List<String> listNew = listStr .stream().map(Student::getName).distinct().collect(Collectors.toList());运⾏结果:5、list与map互转,并根据某⼀属性进⾏分组list转map (下⽅studentMap运⾏会报错,因为作为key值,name不能重复,所以正式开发中应该使⽤唯⼀性id作为key值) Map<String, Student> studentMap = list.stream().collect(Collectors.toMap(Student::getName, student -> student)); list转数组String[] listStrs = list.stream().filter(e -> Objects.equals(e.getSex(), "男")).sorted(paring(Student::getName)).map(Student::getName).toArray(String[]::new);list转map并且分组Map<String, List<Student>> listMap = list.stream().collect(Collectors.groupingBy(Student::getSex));运⾏结果:根据对象某些属性,进⾏分组Map<List, List> studentsMap= list.stream().collect(Collectors.groupingBy(f -> Arrays.asList(f.getAge),f.getSex())));map转listList<Student> collect = studentMap.values().stream().collect(Collectors.toList());6、过滤属性为空的字段Student s6 = new Student("",30,"男");list.add(s6);List<String> stringList = list.stream().map(s -> s.getName()).filter(s -> !s.isEmpty()).collect(Collectors.toList());7、根据某⼀属性进⾏计算根据年龄求最⼤值、最⼩值、平均值、总和、个数IntSummaryStatistics resultNum = list.stream().mapToInt((item)->item.getAge()).summaryStatistics(); System.out.println("max:"+resultNum.getMax());System.out.println("min:"+resultNum.getMin());System.out.println("sum:"+resultNum.getSum());System.out.println("average:"+resultNum.getAverage());System.out.println("count:"+resultNum.getCount());运⾏结果:注意:1、求和有三种类型,mapToInt,mapToLong,mapToDouble2、如果是Bigdecimal数值类型,则计算⽅法如下,(新建对象)Frult frult1 = new Frult("西⽠",new BigDecimal(1));Frult frult2 = new Frult("梨⼦",new BigDecimal(2));List<Frult> frultList = new ArrayList<>();frultList.add(frult1);frultList.add(frult2);BigDecimal totalPrice = frultList.stream().map(Frult::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);//或者⽤mapToInt()进⾏强转(int->Bigdecimal)结语:本⼈⽬前⽤到这么多,希望各位有更好的或者其它的⽤法给予建议与评论,有错误也希望能得到指正!也希望⼤家多多⽀持。

java集合

java集合

比较指定的对象与列表是否相等。 E get(int index)
返回列表中指定位置的元素。
int indexOf(Object o)
返回列表中首次出现指定元素的索引,如果列表不包含此 元素,则返回 -1。
Iterator iterator()
<E>
返回以正确顺序在列表的元素上进行迭代的迭代器。
int lastIndexOf(Object o)
List接口和LinkedList类 3-3
• 第二步:具体实现
public clas1s、Fir添stL加eve头lTit条leD、B3以{ 及最末条新闻标题 public static void main(String[] args) { FirstL2ev、elT获itle取car头= n条ew、Fir以stL及eve最lTit末le(1条, "汽新车闻", "标管理题员", new Date()); FirstLevelTitle medical = new FirstLevelTitle(2, "医学", "管理员",new Date()); 3、删除头条、以及最末条新闻标题
iterator() 返回在此 collection 的元素上进行迭代的迭代器。
remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操
作)。 size()
返回此 collection 中的元素数。 toArray()
返回包含此 collection 中所有元素的数组。
返回列表中最后出现指定元素的索引,如果列表不包含此 元素,则返回 -1。
List常用方法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java集合类实例解析ﻫ我们看一个简单的例子,来了解一下集合类的基本方法的使用:ﻫimport java、util、*;ﻫpublic classCollectionToArray{ﻫpublic staticvoid main(String[] ar gs){Collectioncollection1=new ArrayList();//创建一个集合对象collection1、add(”000”);//添加对象到Collection集合中collection1、add("111”);collection1、add(”222");ﻫSystem、out、println("集合collection1的大小:"+collection1、size()); ﻫSystem、out、println("集合collection1的内容:”+collection1);collection1、remove(”000");//从集合collection1中移除掉”000” 这个对象System、out、println(”集合collection1移除000后的内容:"+collection1); System、out、println(”集合collection1中是否包罗000 :"+collection1、contains("000"));ﻫSystem、out、println("集合collection1中是否包罗111 :”+collection1、contains(”111”)); ﻫCollection collection2=newArrayList(); collection2、addAll(collection1);//将collection1 集合中的元素全部都加到collection2中ﻫSystem、out、println("集合collection2的内容:”+collection2);collection2、clear();//清空集合collection1中的元素ﻫSystem、out、println(”集合collection2是否为空:”+collection2、isEmpty()); ﻫ//将集合collection1转化为数组Object s[]=collection1、toArray(); ﻫfor(inti=0;i〈s、length;i++){ﻫ}System、out、println(s[i]); ﻫ}ﻫ}运行结果为:ﻫ集合collection1的大小:3ﻫ集合collection1的内容:[000, 111, 222]ﻫ集合collection1移除000 后的内容:[111,222] ﻫ集合collection1中是否包罗000 :false ﻫ集合collection1中是否包罗111:true集合collection2的内容:[111, 222]ﻫ集合collection2是否为空:true ﻫ111ﻫ222ﻫ这个地方需要注意的是,Collection它仅仅只是一个接口,而我们真正使用的时候,确是创建该接口的一个实现类、做为集合的接口,它定义了所有属于集合的类所都应该具有的一些方法、如ArrayList (列表)类是集合类的一种实现方式。

ﻫ下面,我们看一个关于迭代器的简单使用:ﻫimportjava、util、ArrayList; ﻫimport java、util、Collection;import java、util、Iterator;ﻫpublicclassIteratorDemo{public staticvoidmain(String[] args) {ﻫCollection collect ion =new ArrayList(); ﻫcollection、add("s1”); ﻫcollection、add(”s2"); ﻫcollection、add(”s3”);Iterator iterator =collection、iterator();//得到一个迭代器ﻫwhile (iterator、has Next()) {//遍历ﻫObject element=iterator、next(); ﻫSystem、out、prin tln(”iterator = " +element);}ﻫif(collection、isEmpty())System、out、println(”collectionisEmpty!");else ﻫSystem、out、println(”collection isnot Empty! size="+collection、size());Iterator iterator 2 = col lect ion 、iter ator();wh ile (iter ator2、hasN ext()) {//移除元素 ﻫObject elem ent = ite ra to r2、n ext();System 、out 、p rintl n(”remove: "+elemen t); ﻫi terator 2、rem ove(); ﻫ} ﻫIt erat or iter ato r3 = c ollectio n、iter ator();if (!it erat or3、has Next()) {//察看是否还有元素Syst em、o ut、p rintln(”还有元素”); ﻫ} ﻫif(co llectio n、isEmpty()) ﻫSystem 、out 、p ri nt ln(”c ollectio n is Emp ty!”); ﻫ//使用col lectio n、i sEmpty()方法来判断 ﻫ}}ﻫ 程序的运行结果为:ﻫit era tor = s 1 ﻫit erat or = s2 ﻫit era tor = s3col lection is not Empty ! siz e=3 ﻫr emo ve: s1 ﻫr emo ve: s2 ﻫrem ove: s3ﻫ 还有元素ﻫ c ollection is Empty!ﻫ 能够看到,J ava 的Co llec tio n的Iter ator 能够用来,:ﻫ 1) 使用方法 it erator() 要求容器返回一个I te rator 、第一次调用Ite rator 的ne xt() 方法时,它返回集合序列的第一个元素。

ﻫ 2) 使用next() 获得集合序列的中的下一个元素、3) 使用h asNext()检查序列中是否元素、ﻫ 4) 使用rem ove()将迭代器新返回的元素删除、ﻫ 需要注意的是:方法删除由ne xt 方法返回的最后一个元素,在每次调用n ext 时,remov e方法只能被调用一次 、ﻫ 大伙儿看,Ja va 实现的这个迭代器的使用就是如此的简单、Iterator(跌代器)尽管功能简单,但仍然能够帮助我们解决许多问题,同时针对Lis t 还有一个更复杂更高级的Lis tIter at or、您能够在下面的Lis t讲解中得到进一步的介绍。

我们看一个List 的例子:ﻫimp or t java 、util 、*; ﻫpubl ic cl ass L istI ter at orTes t { ﻫpublic st at ic void mai n(St ring[] args) {List list = new Ar ra yLi st();list 、a dd(”a aa");list 、a dd("bb b”); ﻫl ist 、a dd("cc c");list 、add("ddd");Sy st em 、out 、prin tl n(”下标0开始:"+l ist 、l istIterator(0)、n ext());//nex t() ﻫSyst em、out 、p rintln("下标1开始:"+li st 、li stIt erato r(1)、next()); ﻫSy stem 、o ut 、pr intln("子Lis t 1-3:”+list 、sub Lis t(1,3));//子列表 ﻫLis tI terator it = list 、listIte rato r();//默认从下标0开始//隐式光标属性a dd 操作 ,插入到当前的下标的前面 ﻫit 、add(”sss");while(i t、h asNex t()){ ﻫSy stem 、out 、pr in tln("n ex t Index ="+it、ne xtI nde x()+”,Obje ct="+it 、n ext());} ﻫ//s et 属性ListI te rator i t1 = list 、l istIt er at or(); ﻫit1、ne xt(); ﻫit1、set(”oo o”); Lis tIter ator it 2 = list 、li stIter ator(list 、s ize());//下标 ﻫwhile(it2、has Prev io us()){ ﻫSy st em、out 、prin tln(”previous In de x=”+it2、pr eviousI nd ex()+”,Objec t="+it2、pre vi ous()); ﻫ}} ﻫ}ﻫ 程序的执行结果为:下标0开始:a aa ﻫ下标1开始:bbb ﻫ子Li st 1-3:[bb b, c cc ] ﻫn ext Ind ex=1,O bject=aaanext Index=2,Object=bb b ﻫne xt I ndex=3,Objec t=c cc ﻫnex t Index=4,Obje ct =ddd ﻫpre vi ous Index=4,Object=d dd ﻫprevious I ndex=3,O bje ct=ccc ﻫprevious Index=2,Object=bbbpreviousIndex=1,Object=a用得最多的主要有Set,List,Map,Iterator这几个接口, Set与List接口都是Collection接口的子接口,有特不多相同的地方,我们只是撑握了Collection接口的方法,Set与List的用法也就差不多了、ﻫ Set与List的区不:2、List是有顺序的,能1、Set是没有顺序的,不能放重复的数据(相同的数据)ﻫ够存放重复的数据(相同的数据)ﻫSet的实现类常用的主要有两个:HashSet、TreeSetﻫ我们能够把一类对象添加1、对TreeSet集到集合中,同时按对象的某一个属性进行排序(客户化排序与自然排序)ﻫ进行客户化排序要求写一个类实现parator接口,同时重写其中的pare方法例: 客户化排序容易扩展,假如要按其它的属性排序,只需要重新写一个类实现parator接口就能够了,ﻫ不需要修改原来的代码。

相关文档
最新文档