Set接口——数据存放无序,非常简单,主要呈现信息列表
Set接口存储一组唯一、无序的对象
HashSet是Set接口常用的实现类
Set接口不存在get方法
- Iterator接口:表示对集合进行迭代的迭代器
- hasNext():表示判断是否还有元素可以迭代
- next():方法:返回迭代的下一个元素
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"); }
@Override public 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; }