JAVA学习【填坑】
Java在学…记录一些自己不懂的知识点等解决后再填
for-each循环与for循环的区别
1.结构区别:
// for循环
for(循环对象初始值;循环范围;循环内容){
循环语句;
}
//for-each循环
for(元素类型 元素名称 : 循环对象(数组、集合)){
循环语句;
}
2.特点:
(1)foreach在循环次数未知或者计算起来较复杂的情况下效率比for循环高。
(2)foreach适用于循环次数未知,或者计算循环次数比较麻烦的情况下,使用效率更高,但是更为复杂的一些循环用for循环效率会更高。
(3)foreach与for循环的明显差别在于foreach循环时循环对象(数组、集合)被锁定,不能对循环对象中的内容进行删改操作,否则会抛出java.util.ConcurrentModificationException异常。
3.例子
(1)普通输出
public static void main(String[] args) {
List<String> arr = new ArrayList<String>();
arr.add("first");
arr.add("second");
arr.add("third");
//foreach循环
for(String str : arr){ //这里的str就是为了获取每次循环的arr中的值
System.out.println(str); //就相当于 String str=arr[i]
}
//for循环
for(int i=0;i<arr.size();i++){
System.out.println(arr.get(i)); //要获取list中元素需要用get方法
}
}
(2)Map键值对
public static void main(String[] args) {
Map<String,String> mapstr = new HashMap<String,String>();
mapstr.put(1, "penny");
mapstr.put(10, "dime");
mapstr.put(25, "quarter");
//entrySet方法是为了获取键值对的集合
for(Map.Entry<String, String> s : mapstr.entrySet()){ //这里的Map.Entry<String, String>其实就是一个类型 用来表示键值对的类型
System.out.println("key="+s.getKey()); //这里其实还是相当于 s=mapstr.entrySet,只不过s存储的是键值对。
System.out.println("value="+s.getValue()); //所以可以用get方法获取出来存储的键值对。
}
super()
先甩个大佬的地址,讲的很详细:this()与super()详解
构造函数
构造器
Object类
1.函数
toString()
equals()