Java——集合框架之Set&HashSet,HashMap,泛型,compareTo
来源:互联网 发布:火影忍者手办淘宝 编辑:程序博客网 时间:2024/06/05 00:57
Set
Set接口——数据存放无序,非常简单,主要呈现信息列表
Set接口存储一组唯一、无序的对象
HashSet是Set接口常用的实现类
Set接口不存在get方法
- Iterator接口:表示对集合进行迭代的迭代器
- hasNext():表示判断是否还有元素可以迭代
- next():方法:返回迭代的下一个元素
HashMap
public static void main(String[] args) { //存储数据的载体 Set set = new HashSet<>(); set.add(new Theme(1, "标题1", "简介one")); set.add(new Theme(2, "标题2", "简介two")); //遍历数据 Iterator iter = set.iterator(); while(iter.hasNext()){ Theme theme = (Theme)iter.next(); System.out.println(theme.getId()+" "+theme.getName()+" "+theme.getRemark()); } }
public static void main(String[] args) { Set set = new HashSet<>();// set.add('b');// set.add('a');// Iterator iter = set.iterator();// while(iter.hasNext()){// System.out.println(iter.next());// } //唯一,不能出现重复的数据 //基本数据类型:值比较 引用数据类型:对象比较(地址) set.add('a'); set.add(1); set.add(1); Theme theme1 = new Theme(1, "1", "1"); Theme theme2 = new Theme(1, "1", "1"); set.add(theme1); set.add(theme2); Iterator iter = set.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); }
public static void main(String[] args) {
//创建map集合对象 Map map = new HashMap<>(); //键值对形式存储,键:一般基本数据类型 值: //键值对是成对出现的。 key-value map.put(1, "abc"); map.put(2, "def"); map.put(3, "ghi"); // 通过key得到value System.out.println(map.get(1)); System.out.println(map); // remove 删除 map.remove(2); System.out.println(map); // size 可以得到键值对的个数 System.out.println(map.size()); //存储国家编号 Map map2 = new HashMap<>(); // map中的ket:Object value:Object map2.put("CN", "China"); map2.put("US", "America"); map2.put("JP", "Japan"); System.out.println(map2.get("CN")); // containsKey 是否包含传入的key的键值对 System.out.println(map.containsKey("HK")); System.out.println(map.containsKey("CN")); Map map3 = new HashMap<>(); Student stu = new Student(1, "小张", 12); map3.put(stu.getStuId(), stu); if(map3.containsKey(stu.getStuId())){ System.out.println("找到了!"); }else{ System.out.println("没找到!"); }}
Map map = new HashMap<>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); //得到键值对中的键,组成成一个Set集合// Set set = map.keySet();// System.out.println(set); // values 所有的值组成的一个集合// Collection col = map.values();// System.out.println(col); // map下的entry可以得到由所有键值对组成的集合 //里边存储的是所有的数据 (键——值组成) Set<Map.Entry<Integer, String>> entrySet = map.entrySet(); Iterator<Map.Entry<Integer, String>> iter = entrySet.iterator(); while(iter.hasNext()){ Map.Entry<Integer,String> entry = iter.next(); System.out.println("键:"+entry.getKey()); System.out.println("值"+entry.getValue()); }
泛型
public class A<T extends Number>{ //T 类型 必须是Number类或Number类的子类 public static void main(String[] args) throws ClassNotFoundException { A<Double> d = new A<>(); //Number 及其子类 // A<String> a = new A<>(); //报错 //String 不继承自Number List<Number> list = new ArrayList<>(); test(list); } // super 传入的类型必须是Number或Number的父类 // extends 传入的类型必须是Number或Number的子类 // ?通配符,可以代指任意类型,方法的参数里 public static void test1(List<? super Number> s){ } public static void test(List<? extends Number> s) throws ClassNotFoundException{ Class<?> a = Class.forName("java.lang.StringBuffer"); System.out.println(a.getName()); }}
public static void main(String[] args) { //应该存储相同类型的数据 //使用泛型 // 1:泛型约束了数据存储的类型 // 2:使用get方法得到的数据类型是确定的 // 泛型的语法:<Object> 必须是引用数据类型, // 如果存储基本数据类型,就要转成相应的包装类 List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); int a = list.get(0); List<Student> list2= new ArrayList<>(); list2.add(new Student(1, "张三", 10)); Student stu = list2.get(0); HashMap<Integer, String> map = new HashMap<>(); map.put(1, "abc"); }
compareTo
@Overridepublic int compareTo(Person o) { // TODO Auto-generated method stub //按照id进行升序排序 // 如果对象本身的id 大于 传入的对象id, //返回值是正数,就是升序排序 //返回值是负数,就是降序排序// if(id>o.getId()){// return 1;// }else if(id==o.getId()){// return 0;// }// return -1; //按照姓名排序 //return name.compareTo(o.getName()); //按照年龄排序 if(age>o.getAge()){ return 1; }else if(age==o.getAge()){ return 0; } return -1; }
阅读全文
1 0
- Java——集合框架之Set&HashSet,HashMap,泛型,compareTo
- 黑马程序员—Java集合框架(Set、HashSet、TreeSet)
- Java集合类框架—Set、HashSet、TreeSet
- 集合框架——Set(HashSet)
- 黑马程序员:Java基础——Set集合之HashSet
- API集合框架-Set集合之HashSet
- Java集合之Set(HashSet)
- Java集合框架之Set--HashSet源码分析
- java集合框架之Set------02_01 HashSet LinkedHashSet
- 《Java源码解析》集合框架Set之HashSet
- Java常见集合框架(十):Set之TreeSet、HashSet
- Java集合框架-Hashset和HashMap
- Java集合框架(Set与Map,HashSet与HashMap,TreeSet与TreeMap)
- 集合框架Set接口之hashset
- Java框架集合-Set(HashSet)
- Java集合框架-2.【Set】【HashSet】【TreeSet】
- java集合框架之HashSet
- Java集合Set、Map、HashSet、HashMap、TreeSet、TreeMap等
- javase-jdk下载、安装、配置
- JWT的学习:JSON Web Token
- MyBatis的XML文件(二)--参数(Parameters)
- Linux系统iptables服务
- uva10692-指数循环节
- Java——集合框架之Set&HashSet,HashMap,泛型,compareTo
- (16)2017.8.17-java基础中期考核复习(2)
- 后缀表达式转中缀表达式
- spring boot学习系列:spring boot的单元测试实战
- Codeforces Round #387 (Div. 2) C. Servers
- MyBatis的XML文件(三)--结果集(ResultMap)--简单
- AXURE RP8实战手册 网站和APP原型制作案例精粹pdf
- B1020. 月饼 (25)
- 使用virtualbox搭建Ubuntu虚拟机