1、体系结构

2、工具类:

package collection;public class InnerTest {private int age;public final int getAge() {return age;
}public final void setAge(int age) {this.age = age;
}public InnerTest(int age) {super();this.age = age;
}
public int compareTo(Object obj) {return 1;
}
public boolean equals(Object obj) {return false;
}
}
package collection;public class Test {private int age;
private String name;
private int num;
public final String getName() {return name;
}public final void setName(String name) {this.name = name;
}public final int getNum() {return num;
}public final void setNum(int num) {this.num = num;
}public Test(int num, String name, int age) {super();this.age = age;this.name = name;this.num = num;
}public Test(int age) {super();this.setAge(age);
}@Override
public String toString() {return "[num=" + getNum() + "__name="+getName()+"__age="+getAge()+"]";
}public int getAge() {return age;
}public void setAge(int age) {this.age = age;
}}

3、HashSet常用函数:

//set:元素不重复、存入对象
package collection;import java.util.HashSet;
import java.util.function.Consumer;public class Collection_Set_HashSet {public static void main(String[] args) {HashSet has1=new HashSet();has1.add("字符串1");has1.add(201);has1.add(231.09);HashSet has=new HashSet();has.add("字符串");has.add(20);has.add(23.09);//常用方法:System.out.println(has.size());System.out.println(has.addAll(has1));System.out.println(has.size());System.out.println(has.add(201));System.out.println(has.size());System.out.println(has.contains(231.09));System.out.println(has.containsAll(has1));System.out.println(has.hashCode());System.out.println(has.isEmpty());      System.out.println(has.remove(201));System.out.println(has.contains(201));has.clear();System.out.println(has.size());}}

4、TreeSet常用函数:

//不重复、且排序
package collection;import java.util.TreeSet;public class Collection_Set_TreeSet {public static void main(String[] args) {TreeSet set=new TreeSet();InnerTest in=new InnerTest(4);set.add(34);set.add(20);set.add(200);set.add(3);set.add(3);set.add(3);System.out.println(set);}}
package collection;import java.util.TreeSet;import array.Array;import java.util.*;
public class Collection_Set_TreeSet2 {public static void main(String[] args) {TreeSet ts=new TreeSet(new Comparator() {public int compare(Object o1,Object o2) {Test t1=(Test)o1;Test t2=(Test)o2;if(t1.getAge()>t2.getAge()) {return 1;                          }else if(t1.getAge()==t2.getAge()) {return 0;}else {return -1;}}});ts.add(new Test(30));ts.add(new Test(0));ts.add(new Test(3));System.out.println(ts);Object[] ar=ts.toArray();//集合转数组使用方法for(Object ar1:ar) {System.out.print(ar1+"\t");}}}

5、ArrayList:

package collection;import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;public class Collection_List_ArrayList {public static void main(String[] args) {ArrayList lt=new ArrayList();Test t1=new Test(1,"bobo",23);Test t2=new Test(2,"clcl",24);Test t3=new Test(3,"haha",34);Test t4=new Test(1,"mmmm",34);lt.add(t1);lt.add(t2);lt.add(t3);System.out.println(lt);System.out.println(lt.get(0));//多用System.out.println(lt.isEmpty());System.out.println(lt.size());System.out.println(lt.indexOf(t1));    //多用System.out.println(lt.lastIndexOf(t3));System.out.println(lt.contains(t1));//System.out.println(lt.remove(0));//删下标返回的是下标对应的元素System.out.println(lt.contains(t1));//System.out.println(lt.remove(t3));//删除对象,返回的是true/falseSystem.out.println(lt.contains(t3));System.out.println(lt.set(0, t3));lt.add(t4);//System.out.println(lt.set(1, t2));for(int i=0;i<lt.size();i++) {Test t=(Test)lt.get(i);System.out.println(t);}lt.sort(new Comparator() {//按年龄倒序,年龄相等,按编号升序public int compare(Object o1,Object o2) {Test t1=(Test)o1;Test t2=(Test)o2;if(t1.getAge()>t2.getAge()) {return -1;                         }else if(t1.getAge()==t2.getAge()) {if(t1.getNum()<=t2.getNum()) {return -1;}else {return 1;}}else {return 1;}}});System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=");for(int i=0;i<lt.size();i++) {Test t=(Test)lt.get(i);System.out.println(t);}System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=");   Object []a= lt.toArray();for(int i=0;i<a.length;i++) {Test a1=(Test)a[i];System.out.println(a1);}}}

6、LinkedList:

package collection;import java.util.LinkedList;
import java.util.List;public class Collection_List_LinkedList {public static void main(String[] args) {Test t1=new Test(1,"bobo",23);Test t2=new Test(2,"clcl",24);Test t3=new Test(3,"haha",34);Test t4=new Test(4,"mmmm",34);System.out.println("+++++++++++++++++++++++++++当List使用++++++++++++++++++++++++++++++++++++++");       LinkedList lt=new LinkedList();lt.add(t1);lt.add(t2);lt.add(t3);lt.add(t4);    System.out.println(lt.getFirst());System.out.println(lt.peekFirst());System.out.println(lt.contains(t1));System.out.println(lt.removeFirst());System.out.println(lt.contains(t1));lt.addFirst(t4);System.out.println(lt.getFirst());lt.clear();System.out.println("++++++++++++++++++++++++++++++当堆栈使用+++++++++++++++++++++++++++++++++++");System.out.println(lt.size());       lt.push(t1);lt.push(t2);lt.push(t3);lt.push(t4);System.out.println(lt.size());  System.out.println(lt.pop());}}

7、HashMap:

package collection;import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;public class Map_HashMap {public static void main(String[] args) {Test t1=new Test(1,"bobo",23);Test t2=new Test(2,"clcl",24);Test t3=new Test(3,"haha",34);Test t4=new Test(1,"mmmm",34);HashMap hmp=new HashMap();hmp.put(100, t1);hmp.put("bobo", t2);hmp.put('q', t3);hmp.put(90.0, t4);System.out.println(hmp.size());hmp.put(100, t4);//key重复根本插不进去System.out.println(hmp.size());System.out.println(hmp.get(100));System.out.println(hmp.get("bobo"));System.out.println(hmp.isEmpty());System.out.println(hmp.containsKey(1000));System.out.println(hmp.containsValue("clcl"));Set st=hmp.keySet();System.out.println(st);Set st2=hmp.entrySet();System.out.println(st2);Scanner scan=new Scanner(System.in);System.out.println("输入key:");int int1=scan.nextInt();if(hmp.keySet().contains(int1)) {System.out.println(hmp.get(int1));}else {System.out.println("键值不存在");}System.out.println("输入value:");int int2=scan.nextInt();if(hmp.containsValue(int2)) {System.out.println(hmp.get(int2));}else {System.out.println("键值不存在");}}
}

HashMap四种遍历方法:

package collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;public class Map_HashMap_iterator {public static void main(String[] args) {shangping sp1=new shangping("H&M",9000);shangping sp2=new shangping("H&B",909);shangping sp3=new shangping("Z&K",98);shangping sp4=new shangping("ZYX",9);HashMap<Integer,shangping> hmp=new HashMap<Integer, shangping>();hmp.put(1, sp1);hmp.put(2, sp2);hmp.put(3, sp3);hmp.put(4, sp4);System.out.println("+++++++++++++++++方式一+++++++++++++++++++++++++++++++++++++");
第一种方式// for(Entry<Integer, shangping> enty:hmp.entrySet()) {System.out.println("Key:"+enty.getKey());System.out.println("value:"+enty.getValue());}System.out.println("+++++++++++++++++方式二+++++++++++++++++++++++++++++++++++++");
第二种方式/效率极高以后使用这种遍历方法/   Iterator<Entry<Integer, shangping>> it=hmp.entrySet().iterator();while(it.hasNext()) {Entry<Integer, shangping> enty=it.next();System.out.println("Key:"+enty.getKey());System.out.println("value:"+enty.getValue());}System.out.println("+++++++++++++++++方式三+++++++++++++++++++++++++++++++++++++");
第三种方式效率极低不要用了// for(int key:hmp.keySet()) {System.out.println("Key:"+key);System.out.println("value:"+hmp.get(key));}System.out.println("+++++++++++++++++方式四+++++++++++++++++++++++++++++++++++++");
第四种方式// Set<Entry<Integer, shangping>> set=hmp.entrySet();for(Entry<Integer, shangping> enty:set) {System.out.println("Key:"+enty.getKey());System.out.println("value:"+enty.getValue());}}}

8、泛型使用,建议具体的集合使用时都用泛型,这样不仅类型安全,同时消除强制类型转换,以及潜在的性能先收益

package collection;import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.TreeSet;public class Fan_type {public static <E> void main(String[] args) {Test t1=new Test(1,"bobo",23);Test t2=new Test(2,"clcl",24);Test t3=new Test(3,"haha",34);Test t4=new Test(4,"mmmm",34);ArrayList<Test> alt=new ArrayList<Test>();alt.add(t1);LinkedList<Test> lklt=new LinkedList<Test>();lklt.add(t2);HashSet<Test> set=new HashSet<Test>();set.add(t1);TreeSet<Test> tre=new TreeSet<Test>();tre.add(t1);HashMap<Integer, Test> hmp=new HashMap<Integer, Test>();hmp.put(100, t2);}}

9、一个简单的例子,使用接口,集合实现百度跟贴的实例:
主贴实体类:

package collection;public class Tooltiezi {private int num;private String title;private String content;private String time;public Tooltiezi() {}public Tooltiezi(int num, String title, String content, String time) {super();this.num = num;this.title = title;this.content = content;this.time = time;}public final int getNum() {return num;}public final void setNum(int num) {this.num = num;}public final String getTitle() {return title;}public final void setTitle(String title) {this.title = title;}public final String getContent() {return content;}public final void setContent(String content) {this.content = content;}public final String getTime() {return time;}public final void setTime(String time) {this.time = time;}@Overridepublic String toString() {return "Tooltiezi [num=" + num + ", title=" + title + ", content=" + content + ", time=" + time + "]";}}

主贴接口:

package collection;import java.util.HashMap;
import java.util.List;public interface ITooltiezi {public  abstract void addTiezi(Tooltiezi tiezi);//增public  abstract void deleteTieziByNum(int num);//删public  abstract void deleteTieziByMap(HashMap<Integer,Object> hmp);//删public  abstract List<Tooltiezi> findTieziByNum(int num);//查public  abstract List<Tooltiezi> findTieziByMap(HashMap<Integer,Object> hmp);//查public  abstract void updateTiezi(Tooltiezi tiezi); //改
}

主贴接口实现类:

package collection;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;public final class Tool implements ITooltiezi{private  ArrayList<Tooltiezi> tieList=new ArrayList<Tooltiezi>();public  final ArrayList<Tooltiezi> getTieList() {return tieList;}public  final void setTieList(ArrayList<Tooltiezi> tieList) {this.tieList = tieList;}public  void print1(int num) {for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getNum()==num) {System.out.println(tieList.get(i));}    }}@Overridepublic  void addTiezi(Tooltiezi tiezi) {tieList.add(tiezi);     }@Overridepublic void deleteTieziByNum(int num) {for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getNum()==num) {tieList.remove(tieList.get(i));}}}@Overridepublic void deleteTieziByMap(HashMap<Integer, Object> hmp) {// TODO Auto-generated method stub}@Overridepublic List<Tooltiezi> findTieziByNum(int num) {List<Tooltiezi> lt=new ArrayList<Tooltiezi> ();for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getNum()==num) {lt.add(tieList.get(i));}}return lt;}@Overridepublic List<Tooltiezi> findTieziByMap(HashMap<Integer, Object> hmp) {// TODO Auto-generated method stubreturn null;}@Overridepublic void updateTiezi(Tooltiezi tiezi) {for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getNum()==tiezi.getNum()) {tieList.set(i, tiezi);}}}}

跟帖类:

package collection;public class Tooltiezi2 {private Tooltiezi zhutiezi;private int num;private String title;private String content;private String time;@Overridepublic String toString() {return "\t\t"+"Tooltiezi2 [num=" + num + ", title=" + title + ", content=" + content+ ", time=" + time + "]";}public Tooltiezi2(Tooltiezi zhutiezi, int num, String title, String content, String time) {super();this.zhutiezi = zhutiezi;this.num = num;this.title = title;this.content = content;this.time = time;}public final Tooltiezi getZhutiezi() {return zhutiezi;}public final void setZhutiezi(Tooltiezi zhutiezi) {this.zhutiezi = zhutiezi;}public final int getNum() {return num;}public final void setNum(int num) {this.num = num;}public final String getTitle() {return title;}public final void setTitle(String title) {this.title = title;}public final String getContent() {return content;}public final void setContent(String content) {this.content = content;}public final String getTime() {return time;}public final void setTime(String time) {this.time = time;}public Tooltiezi2() {}}

跟帖接口类:

package collection;import java.util.HashMap;
import java.util.List;public interface ITooltiezi2 {public  abstract void addTiezi(Tooltiezi2 tiezi);//增public  abstract void deleteTieziByNum(int num);//删public  abstract void deleteTieziByMap(HashMap<Integer,Object> hmp);//删public  abstract List<Tooltiezi2> findTieziByNum(int num);//查public   abstract List<Tooltiezi2> findTieziByMap(HashMap<Integer,Object> hmp);//查public     abstract void updateTiezi(Tooltiezi2 tiezi);    //改
}

跟帖接口实现类:

package collection;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;public class Tool2 implements ITooltiezi2{private static ArrayList<Tooltiezi2> tieList=new ArrayList<Tooltiezi2>();public static final ArrayList<Tooltiezi2> getTieList() {return tieList;}public static final void setTieList(ArrayList<Tooltiezi2> tieList) {Tool2.tieList = tieList;}public static ArrayList<Tooltiezi2> getT2List(int num){ArrayList<Tooltiezi2> tie = new ArrayList<Tooltiezi2>();for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getZhutiezi().getNum()==num) {tie.add(tieList.get(i));}}return tie;}public static void print1(int num) {ArrayList<Tooltiezi2> tie =getT2List(num);for(int i=0;i<tie.size();i++) {System.out.println(tie.get(i));}}@Overridepublic void addTiezi(Tooltiezi2 tiezi) {tieList.add(tiezi);}@Overridepublic void deleteTieziByNum(int num) {for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getNum()==num) {tieList.remove(tieList.get(i));}}}@Overridepublic void deleteTieziByMap(HashMap<Integer, Object> hmp) {// TODO Auto-generated method stub}@Overridepublic List<Tooltiezi2> findTieziByNum(int num) {List<Tooltiezi2> lt=new ArrayList<Tooltiezi2> ();for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getNum()==num) {lt.add(tieList.get(i));}}return lt;}@Overridepublic List<Tooltiezi2> findTieziByMap(HashMap<Integer, Object> hmp) {// TODO Auto-generated method stubreturn null;}@Overridepublic void updateTiezi(Tooltiezi2 tiezi) {for(int i=0;i<tieList.size();i++) {if(tieList.get(i).getNum()==tiezi.getNum()) {tieList.set(i, tiezi);}} }
}

具体操作测试类:

package collection;public class T1 {public T1() {}public static void main(String[] args) {Tooltiezi zhutie1=new Tooltiezi(1,"Java技术","java语言分为JavaME,JavaSE,javaEE,Java的多线程技术相当的考手艺,相当的叼","2018-4-6");Tooltiezi zhutie2=new Tooltiezi(2,"JavaEE技术","javaEE技术是java企业记得应用,也成为JavaWEB应用技术,常用于做网站呢,搭建数据库这种","2018-4-6");Tooltiezi2 gentie1=new Tooltiezi2(zhutie1,1,"主贴1评论1","介绍很清晰到位","2018-4-7");Tooltiezi2 gentie2=new Tooltiezi2(zhutie1,2,"主贴1评论2","这么介绍很不好,没有逻辑","2018-4-8");Tooltiezi2 gentie3=new Tooltiezi2(zhutie2,3,"主贴2评论1","介绍很清晰到位","2018-4-7");Tooltiezi2 gentie4=new Tooltiezi2(zhutie2,4,"主贴2评论2","这么介绍很不好,没有逻辑","2018-4-8");Tool to1=new Tool();to1.addTiezi(zhutie2);to1.addTiezi(zhutie1);           Tool2 to2=new Tool2();to2.addTiezi(gentie1);to2.addTiezi(gentie2);to2.addTiezi(gentie3);to2.addTiezi(gentie4);to1.print1(1);to2.print1(1); to1.print1(2);to2.print1(2);}}

Java 集合HashSet TreeSet HashMap ArrayList TreeList相关推荐

  1. Java集合 -- HashSet 和 HashMap

    HashSet 集合 HashMap 集合 HashSet集合 1.1 Set 接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B:没有索引 C:存入集合的元素没有重复 1. ...

  2. Java集合 HashSet 和 HashMap

    HashSet 集合 HashMap 集合 HashSet集合 Set 接口的特点 Set体系的集合: 存入集合的顺序和取出集合的顺序不一致 没有索引 存入集合的元素没有重复 HashSet 使用&a ...

  3. java集合——数组列表(ArrayList)+散列集(HashSet)

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java集合--数组列表(ArrayList)+散列集(HashSet) 的相关知识: 0.2 ...

  4. 深入Java集合学习系列:ArrayList的实现原理

    参考文献 深入Java集合学习系列:ArrayList的实现原理 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/20 ...

  5. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

    转载自  Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 第1部分 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与 ...

  6. 【重难点】【Java集合 01】HashMap 和 ConcurrentHashMap

    [重难点][Java集合 01]HashMap 文章目录 [重难点][Java集合 01]HashMap 一.HashMap 1.概述 2.JDK 1.8 中的变化 3.链表转换为红黑树 4.扩容问题 ...

  7. Java 集合之TreeSet 自定义类 比较器

    Java 集合之TreeSet 基于 TreeMap 的 NavigableSet 实现. 使用元素的自然顺序进行排序,或者通过在集合创建时提供的 Comparator 进行排序,具体取决于使用的构造 ...

  8. Set集合[HashSet,TreeSet,LinkedHashSet],Map集合[HashMap,HashTable,TreeMap]

    ------------ Set ------------------- 有序: 根据添加元素顺序判定, 如果输出的结果和添加元素顺序是一样 无序: 根据添加元素顺序判定,如果输出的结果和添加元素的顺 ...

  9. Java集合框架:HashMap

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

最新文章

  1. ASP.net随机数应用实例
  2. 企业跟风移动考勤市场,变革下的移动考勤应该怎么玩?
  3. Kotlin实战指南六:可空类型、非可空类型
  4. 在数字图像处理中特征点是什么
  5. nodejs+webpack+vue以及npm安装对应的库
  6. Accusoft结构化工具包FormSuite for Structured Forms常见问题解答(二)
  7. thinkphp3.2+cropper上传多张图片剪切图片
  8. python教程-Python快速教程
  9. sas+eg连接mysql_SAS EG 连接 SQL Server 2017数据库
  10. 计算机二级MS office 复习思维导图
  11. 【IntelliJ IDEA】idea多次重装打不开的解决办法
  12. 必须来GeekPwn的十大理由
  13. SQLserver分离数据库
  14. cesium-接入监控视频
  15. GA/T1400视图库协议-结构化数据对接
  16. 脱离文档流和恢复文档流的方法
  17. 关联规则Apriori算法
  18. 批处理注销计算机当前用户名,批处理实现重起和注销的指令是什么?
  19. SaaS产品盘点:独立应用创新向全程电子商务蜕变
  20. ubuntu安装nvida驱动时出现:you appear to be running an x server please exit x before installing

热门文章

  1. ubuntu 安装 最新 OpenBabel
  2. python 中统计超大文件行数
  3. Altium AD20的四层板叠层管理、平面层20H内缩
  4. 【Qt串口调试助手】1.7 - QLabel标签插入链接,修改Qt应用图标
  5. Activity之间的跳转和四种启动模式
  6. C++函数的返回值,你不懂得!陷阱无处不在!
  7. extjs combobox column布局为什么折叠在一起
  8. elastic-job 新手指南官网指南
  9. SSM 封装base(二) -封装分页
  10. Runner站立会议04