-
public class MapTest {
public Map<String,Student> student;
public MapTest() {
this.student=new HashMap<String,Student>();
}
public void testPut() {
Scanner input = new Scanner(System.in);
int i=0;
while(i<3) {
System.out.println("请输入学生的id:");
String str1 = input.next();
Student st = student.get(str1);
if(st==null) {
System.out.println("请输入学生姓名:");
String name = input.next();
Student stu = new Student(str1,name);
student.put(str1,stu);
i++;
}else {
System.out.println("该学生已经被录入");
continue;
}
}
}
public void testPrint() {
System.out.println("学生总人数为:"+student.size());
Set<String> keySet = student.keySet();
for(String stuid : keySet) {
Student stu = student.get(stuid);
if(stu.name!=null) {
System.out.println("学生为:"+student.get(stuid).name);
}}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest demo = new MapTest();
demo.testPut();
demo.testPrint();
}
}
查看全部 -
Map接口 1. Map接口提供了一中映射关系,其中的元素是键值对(key-value)的形式存储的,能够实现根据Key快速查找value。Key-value可以是任何对象,是以Entry类型的对象实例存在的。 2.Key是不可以重复的,Value是可以重复的。Key-value都可以为null,不过只能有一个key是null。
3.map支持泛型,Map<K,V>
4.每个键最多只能映射到一个值
5.Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法
6.通过put<K key,V value>,remove<Object key>操作数据 7.HashMap中的Entry对象是无序排列的,HashMap是Map的一个重要实现类,也是最常用的,是基于哈希表来实现的
查看全部 -
“==” 和 equals() 有什么区别呢?
==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象
equals(): 比较存储在两个字符串对象中的内容是否一致
查看全部 -
通过迭代器来遍历list
public void 方法名(){
Iterator 对象名=List名.iterator();
while(it.hasNext()){
类名 对象名=(类名)it.next();//取得List中的元素
}
}
通过foreach访问
public void 方法名(){
for(Object obj:List名){
类名 对象名=(Object) obj;
}
}
查看全部 -
对象存入集合时都变成Object类型,取出时要进行类型转换
查看全部 -
Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();
查看全部 -
java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();
调用 Calendar 类的 getInstance() 方法获取一个实例,然后通过调用 get() 方法获取日期时间信息,参数为需要获得的字段的值, Calendar.YEAR 等为 Calendar 类中定义的静态常量。
Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。
Date date=c.getTime();
查看全部 -
1.使用format()方法将日期转换为指定格式的文本
//创建Date对象,表示当前时间
Date d=new Date()
//创建SimpleDateFormat对象,指定目标格式
SimpleDateFormat sdf=new SimpleDateFormat("");
//调用format()方法,格式化时间,转换为指定格式字符串
String today=sdf.format();
//输出转换后的字符串
System.out.println(today);
2.使用parse()方法将文本转换为日期
//创建日期格式的字符串
String day="2019年09月10号 12:09:00";
//创建SimpleDateFormat对象,指定字符串的日期格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//调用parse()方法,将字符串转换为日期
Date date=sdf.parse(day);
//输出转换后的时间
System.out.println("当前时间:"+date);
查看全部 -
基本类型转换为字符串有三种方法:
1. 使用包装类的 toString() 方法
String 字符串名=类型名全称.toString(对象名);
2. 使用String类的 valueOf() 方法
String 字符串名=String.valueOf(对象名);
3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
String 字符串名=对象名+"";
将字符串转换成基本类型有两种方法:
1. 调用包装类的 parseXxx 静态方法
int 对象名=Integer.parseInt(字符串名);
2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
int 对象名=Integer.valueOf(字符串名);
查看全部 -
包装类主要提供了两大类方法:
1. 将本类型和其他基本类型进行转换的方法
2. 将字符串和本类型及包装类互相转换的方法
查看全部 -
将一个字符串转化为数组:byte[] 数组名=字符串名.getBytes();
查看全部 -
当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。至于 StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。
StringBuilder str1=new StringBuilder();(创建一个空的StringBuilder对象)
StringBuilder str2=new StringBuilder("imooc");(创建一个字符串imooc)
System.out.println(str2);
查看全部 -
==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象
equals(): 比较存储在两个字符串对象中的内容是否一致
PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节。所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89” ,而英文字母 “J” 对应 “74” 。同时,我们还发现汉字对应的字节值为负数,原因在于每个字节是 8 位,最大值不能超过 127,而汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示。
查看全部 -
set 中只能用foreach 和iterator 方法。而不能用List中的get()方法。
因为set是无序的。list是有序的
set中的元素是不可重复的,添加某个对象,无论添加多少次,最终只会保留一个该对象(的引用),并且,保留的是第一次添加的那一个
set中可以添加空对象null的
public static void main(String[] args) {
// TODO Auto-generated method stub
CauseToSet test = new CauseToSet();
test.testAdd();
Student student1 = new Student("1","CBB");
Scanner input = new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.println("请输入你要选课的id");
String str = input.next();
for(Cause ca :test.causetolist) {
if(str.equals(ca.id)) {
student1.cause.add(ca);
//student1.cause.add(null); set中可以添加null
}
}
}
test.testForEachSet(student1);
}
public void testForEachSet(Student student) {
for(Cause ca :student.cause) {
System.out.println(ca.id+";"+ca.name);
}
}
查看全部 -
泛型中除了可以添加规定的类型还可以添加规定类型的子类型。
1、泛型集合中的限定类型不能使用基本数据类型。如:int、long、boolean
2、可以通过使用包装类限定允许存入的基本数据类型。如:Integer、Long、Boolean
public void type() {
List<Integer> test1 = new ArrayList<Integer>();
test1.add(1);//这里的1为int类型,被强制转换为包装类Integer类型在加入test1中
int a =test1.get(0);
System.out.println(a);
}
public void testChird() {
CauseChrid ca1 = new CauseChrid();
ca1.id="6";
ca1.name="CBB";
causetoselect.add(ca1);
查看全部
举报