java集合框架随写1
来源:互联网 发布:开淘宝店铺方便自己吗 编辑:程序博客网 时间:2024/06/18 11:50
①集合框架的概念
父:Collection(接口)【AbstractCollection(类)】 ⇒ List (接口)【AbstractList(类)】,Set(接口)【AbstractSet(类)】
分支1:List 实现类⇒ ArrayList LinkedList Vecter
分支2:Set 实现类⇒ HashSet TreeSet
②List和Set的区别
List:有序集合,元素可以重复。
Set:无序集合,元素不可以重复。
③Set不可以重复的实现原理
HashSet: 通过Object类的hashCode方法和equals方法来实现(引用对象不是Object的时候有必要重写这两个方法)。
TreeSet:通过二叉树原理实现,具体使用两种方法实现。
①通过继承Comparable接口重写该接口的compareTo(T, o)方法实现。
②创建一个比较器Compartor通过重写Compartor(接口)的compare(T o1, T o2)方法来实现。
代码如下:
import java.util.*;public class TreeSetDemo1 { public static void main(String[] args) { TreeSet<Person> st= new TreeSet<Person>(new PersonComparator()); st.add(new Person("zhangsan005",18)); st.add(new Person("zhangsan006",20)); st.add(new Person("zhangsan002",15)); st.add(new Person("zhangsan003",19)); st.add(new Person("zhangsan001",13)); st.add(new Person("zhangsan008",15)); Iterator<Person> it = st.iterator(); while(it.hasNext()) { Person p= it.next(); System.out.println(p.getName()+" "+p.getAge() ); } }}/** * * 方式一:通过继承Comparable接口重写该接口的compareTo方法实现。 * @author userclass Person implements Comparable<Person>{ private String name; private int age; Person(String name,int age) { this.name=name; this.age=age; } public String getName() {return name;} public int getAge() {return age;} public int compareTo(Person p) { int num=this.age-p.getAge(); if(num==0) { num=name.compareTo(p.getName()); } return num; }} *//********************************************************************************************************//** * 方式二:通过构造函数中添加比较器(comparator)实现 * @author user * */class Person{ private String name; private int age; Person(String name,int age) { this.name=name; this.age=age; } public String getName() {return name;} public int getAge() {return age;}}//创建一个比较器类继承Comparator接口class PersonComparator implements Comparator<Person>{@Overridepublic int compare(Person arg0, Person arg1) { // TODO Auto-generated method stub int num=arg0.getAge()-arg1.getAge(); if(num==0) { num=arg0.getName().compareTo(arg1.getName()); } return num; }}
0 0
- java集合框架随写1
- java(1)--集合框架
- java集合框架(1、集合介绍)
- Java集合:集合框架
- 利用java集合框架写的一个简单扑克游戏
- Java集合框架1-->List
- #java读书笔记#集合框架1
- Java 集合框架Example-1
- Java 集合框架(1)
- Java集合框架(1)
- 【Java】java集合框架
- [Java]Java集合框架
- JAVA集合框架和集合
- 【集合】Java集合框架介绍
- Java集合之集合框架
- [集合]Java的集合框架 Collection集合
- 黑马程序员-java集合框架1
- java学习--集合框架(1)
- 【机器学习详解】SVM解二分类,多分类,及后验概率输出
- java资源大全
- K近邻分类算法实现 in Python
- 树莓派 Raspberry-Pi 折腾系列:系统安装及一些必要的配置
- 构建之法第8,16章总结与感悟
- java集合框架随写1
- hibernate使用DetachedCriteria案例
- K-SVD简述——字典学习,稀疏编码
- 使用 Source InSight 阅读 Android 源码
- iOS 注册Xib注册总结
- Java中public,private,final,static等概念的解读
- python判断语句is与==的区别
- Java内部类的一些总结
- Java中this和super的用法总结