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
public class A<T extends Number>{
//T 类型 必须是Number类或Number类的子类
public static void main(String[] args) throws ClassNotFoundException {
A d = new A<>();
//Number 及其子类
// A a = new A<>(); //报错
//String 不继承自Number
List 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方法得到的数据类型是确定的
// 泛型的语法:
// 如果存储基本数据类型,就要转成相应的包装类
List list = new ArrayList<>();
list.add(1);
list.add(2);
int a = list.get(0);
List list2= new ArrayList<>();
list2.add(new Student(1, "张三", 10));
Student stu = list2.get(0);
HashMap 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;
}