<style></style>
一、用得最多的主要有Set,List,Map,Iterator这几个接口,
Set和List接口都是Collection接口的子接口,有很多相同的地方,我们只是撑握了Collection接口的方法,Set和List的用法也就差不多了.
Set和List
的区别:1、Set是没有顺序的,不能放重复的数据(相同的数据)
2、List是有顺序的,可以存放重复的数据(相同的数据)
Set的实现类常用的主要有两个:HashSet、TreeSet
我们可以把一类对象添加到集合中,并且按对象的某一个属性进行排序(客户化排序和自然排序)
1、对TreeSet集进行客户化排序要求写一个类实现Comparator接口,并且重写其中的Compare方法
例:
客户化排序容易扩展,如果要按其它的属性排序,只需要重新写一个类实现Comparator接口就可以了,
不需要修改原来的代码。
class
Users
{
private String name;
private int
id;
public Users(String name,int id)
{
this.name=name;
this.id=id;
}
public void setName(String name)
{
this.name=name;
}
public
String getName()
{
return
name;
}
public void setId(int id)
{
this.id=id;
}
public int
getId()
{
return id;
}
//这里重写了父类的toString方法
public String
toString()
{
return this.name + "\t" +
this.id +
"\t";
}
}
//这个类实现Comparator接口,并且重写了其中的compare方法
public
class MyComparator implements Comparator
{
public
int compare(Object o1,Object o2)
{
Users
user1=(Users)o1;
Users
user2=(Users)o2;
if(user1.getId>user2.getId) return
1;
else if(user1.getId==user2.getId) return
0;
return -1;
}
}
class TestComparator
{
public static void main(String
args[])
{
TestComparator.test();
}
public static void
test()
{
Set set=new TreeSet(new
MyComparator());
Users
user1=new Users("张三",17);
Users
user2=new Users("李四",13);
Users
user3=new Users("王五",19);
Users user5=new
Users("王五",19);
set.add(user1);
set.add(user2);
set.add(user3);
set.add(user5);
for(Object
obj
:set)
{
System.out.println(obj);
}
}
}
2、自然排序,将需要排序的那个类实现Comparable接口并且重写其中的compareTo方法
例如下: class
Users implements Comparable
{
private String
name;
private int id;
public Users(String name,int
id)
{
this.name=name;
this.id=id;
}
public void setName(String name)
{
this.name=name;
}
public
String getName()
{
return
name;
}
public void setId(int id)
{
this.id=id;
}
public int
getId()
{
return id;
}
//这里重写了父类的toString方法
public String
toString()
{
return this.name + "\t" +
this.id + "\t";
}
//重写compareTo方法
public int compareTo(Object o)
{
UserBean user = (UserBean) o;
if (this.id > user.id)
return 1;
else if (this.id == user.id) return
0;
return -1;
}
}
3.如果是HashSet自然排序,则要求排序的类重写hashCode方法和equals方法
二、对List和Set集进行遍历:
List集有三种方法进行遍历:
1、通过下标遍历,2使用迭代器进行遍历,3、增强循环进行遍历
List list=new
ArrayList();
list.add("aa");
list.add("bb");
list.add("cc");
for(int
i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
Iterator it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
for(Object obj
:list)
{
System.out.println(obj);
}
三、Vector和ArrayList的区别:
1、Vector
和ArrayList都实现了List接口,Vector是线程安全的,可以多个线程同时访问,但性能比较差
2、ArrayList线程不安全,不支持多个线程同时访问,但性能比较好,访问的速度快
四、Map集是以键值对的形式存放的,键不可以重复,值可以重复,如果键重复,会将原来的值覆盖,
Map集的实现类主要有三个:HashMap,TreeMap,HashTable
HashMap与HashTable 的区别:
1、HashTable是线程安全的,支持同步。2、HashMap线程不安全,不支持
同步,但性能比HashTable好
Map集的遍历:
1、
Map
map=new
HashMap()
map.put("1","张飞");
map.put("2","关羽");
map.put("3","刘备");
//得到键的集合
Set
set=map.keySet();
for(Object obj
:set)
{
System.out.println(map.get(obj));
}
2、
//得到健值对的集合
Set
s=map.entrySet();
for(Object obj
:set) {
System.out.println(obj);
}
五、对List集进行客户化排序,可以通过Collections类的sort方法,要求传一个List集和一个Comparator对象
例:
List list=new ArrayList()
Users
user1=new Users("张三",17); Users user2=new Users("李四",13);
Users
user3=new Users("王五",19);
Users user5=new
Users("王五",19);
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user5);
Collections.sort(list,new
Mycomparator());
Iterator
it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
分享到:
相关推荐
Java集合框架是Java标准库中的核心部分,它提供了一组高效的数据结构,如List、Set和Map,用于存储和操作对象。在这个银行管理系统中,集合可能被用来存储客户信息、账户信息、交易记录等。例如,ArrayList可以用于...
JAVA中集合类的使用及解释
迭代器用于遍历集合中的元素,而泛型则允许我们在集合中指定存储的元素类型,提高了代码的类型安全性和可读性。 集合框架的设计原则鼓励使用接口而非具体类,因为这有助于代码的可扩展性和可维护性。例如,我们通常...
对于java中集合框架的详细解释说明,对于java开发中集合这一块不太清楚的适合学习
在Java集合框架中,迭代器(Iterator)是一个非常关键的概念,它允许我们遍历集合中的元素。`hasNext()`检查是否还有更多元素,`next()`返回下一个元素,而`remove()`则移除当前元素。在示例代码中,迭代器被用来...
泛型允许在集合中声明和使用特定类型的元素,提高代码安全性和可读性。 7. **并发集合**: Java提供了线程安全的集合实现,如`ConcurrentHashMap`, `CopyOnWriteArrayList`等,用于多线程环境。 8. **集合的遍历...
- `removeAll(Collection c)`: 移除当前集合中出现在指定集合中的所有元素。 - `remove(Object o)`: 从集合中移除指定的元素。 #### List和Set接口 - **List**接口:继承自`Collection`,提供了有序且可重复元素的...
本篇文章将深入探讨Java集合框架的各个方面,包括基本概念、主要接口、类以及它们的使用场景。 首先,我们来了解Java集合框架的基础。集合框架是一个统一的架构,它定义了各种接口和类,这些接口和类为存储、管理和...
本文将深入探讨标题中提到的HashMap类、IdentityHashMap类、SortedMap接口以及自定义类在Map中的使用,以及随机数在集合中的应用。 首先,HashMap类是Java中最常用的Map实现之一,它基于哈希表,提供了O(1)的平均...
根据给定文件的信息,我们可以提炼出以下关于Java集合的关键知识点: ### 1. Java集合概述与常见类 Java集合框架是Java平台的核心组件之一,它为开发者提供了多种数据结构来存储和操作对象集合。Java集合主要包括...
迭代器是集合的特有遍历方法,可以取出集合中的元素。集合接口是 Java 中的接口,定义了集合的基本操作,例如添加、删除、查找等。 集合可以分为两种:List 和 Set。List 是一种有序的集合,元素可以重复,例如 ...
Java 泛型集合和Java集合框架是Java编程中不可或缺的部分,它们为开发者提供了高效的数据存储和操作机制。本文将深入探讨这两个主题,并着重讲解`Collection`接口及其在Java中的应用。 首先,Java泛型是一种在编译...
- 提高代码可读性:通过类型参数,一眼就能看出集合中存储的数据类型。 总之,Java泛型集合是提高代码质量和效率的重要工具,它强化了类型系统,使开发者能够编写更安全、更健壮的代码,同时降低了潜在的bug风险。...
java中的常用的集合类,目前因为是第一篇文章只是作为测试使用
java集合继承结构图
### JAVA集合详解 #### 一、集合框架概述 ##### 1. 什么是JAVA集合框架? JAVA集合框架(Java Collection Framework)是一种为表示和操作集合所规定的标准体系结构,旨在为开发人员提供一种灵活且高效的机制来...
而`Iterable`接口是集合可迭代的标志,通过`iterator()`方法获取迭代器,遍历集合中的元素。`Map`接口则是用于存储键值对的数据结构,`HashMap`、`TreeMap`和`LinkedHashMap`是常见的实现。 关于源码,Java集合框架...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了存储和管理对象的统一方式。这个框架包括了一系列接口、抽象类以及实现类,帮助程序员处理各种数据结构,如列表、集合、映射等。 首先,我们...
此外,Java集合中还有一些常见的问题,例如ArrayList和Vector的区别、HashMap和Hashtable的区别等。ArrayList和HashMap分别比Vector和Hashtable具有更好的性能,因为它们不是线程同步的。 在Java集合中,Comparable...