为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第三季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • “==” 和 equals() 有什么区别呢? ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象 equals(): 比较存储在两个字符串对象中的内容是否一致
    查看全部
  • 泛型集合中规定的类型不能是基本数据类型,如果需要的话应使用基本数据类型的包装类.
    查看全部
  • StringBulider和stringBuffer在频繁使用字符串时使用可避免产生很多临时变量;
    查看全部
  • 泛型的定义
    查看全部
  • Map中 containsKey(),判断是否包含Key值 containsvalue(),判断是否包含value值 Collections.sort(list);排序Integer :ok ,String :OK(0-9,A-Z,a-z) ---------------- ---map 和list的contains()都需要重写equals(),hashCode()方法 object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true; 注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。如下: (1)当obj1.equals(obj2)为true时,obj1.hashCode() == obj2.hashCode()必须为true (2)当obj1.hashCode() == obj2.hashCode()为false时,obj1.equals(obj2)必须为false 如果不重写equals,那么比较的将是对象的引用是否指向同一块内存地址,重写之后目的是为了比较两个对象的value值是否相等。特别指出利用equals比较八大包装对象 (如int,float等)和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它自定义对象时都是比较的引用地址 hashcode是用于散列数据的快速存取,如利用HashSet/HashMap/Hashtable类来存储数据时,都是根据存储对象的hashcode值来进行判断是否相同的。 这样如果我们对一个对象重写了euqals,意思是只要对象的成员变量值都相等那么euqals就等于true,但不重写hashcode,那么我们再new一个新的对象, 当原对象.equals(新对象)等于true时,两者的hashcode却是不一样的,由此将产生了理解的不一致,如在存储散列集合时(如Set类),将会存储了两个值一样的对象, 导致混淆,因此,就也需要重写hashcode()
    查看全部
  • set 的contains(obj)判定 equals(obj)+hashCode() Collection ->set->contains() 需要重写equals(obj)+hashCode()方法*eclipse可以在源代码-equals(obj)+hashCode()中自动添加重写代码
    查看全部
  • public void testSort3(){<br> List<String> stringList = new ArrayList<String>();<br> String k;<br> StringBuffer s = new StringBuffer(); <br> StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");<br> Random random=new Random();<br> int range = buffer.length();<br> for(int i = 0;i < 10;i++){<br> for(int j = 0;j < 10;j++){<br> s.append(buffer.charAt(random.nextInt(range)));<br> // System.out.println("元素A:" + s +"," +i);<br> }<br> stringList.add(s.toString());<br> s=new StringBuffer();<br> }<br> System.out.println("******排序前******");<br> for(String string:stringList){<br> System.out.println("字符串:" + string);<br> }<br> Collections.sort(stringList);<br> System.out.println("******排序后******");<br> for(String string:stringList){<br> System.out.println("字符串:" + string);<br> }<br> }
    查看全部
  • 首先我们将ListA中的对象全部装入到list中,然后在装入ListB中对象的 时候对ListB中的每个元素进行一下判断,看list中是否已存在该元素,这里我们使用List接口的contains()方法。它的原理是这样的:如上例中的 list.contains(o),系统会对list中的每个元素e调用o.equals(e),方法,加入list中有n个元素,那么会调用n次o.equals(e),只要有一次o.equals(e)返回了true,那么list.contains(o)返回true,否则返回false。因此为了很好的使用contains()方法,我们需要重新定义下Order类的equals方法,根据我们的业务逻辑,如果两个Order对象的orderId相同,那么我们认为它们代表同一条记录,于是equals方法定义如下: public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final Order other = (Order) obj; if(this.getOrderid()!=other.getOrderid()) return false; return true; } 这样只要ListB中有一条记录的orderId和list中的某条记录的orderId 相等,那么我们就认为该记录已存在,不再将它放入list,这样就避免了重复记录的存在。
    查看全部
  • 之前在一个字符串中找点的位置,又去另一个字符串中切,就不对了撒
    查看全部
  • collection和map都是接口 collection内部存储的是一个个对象,而map内部以<key,value>作为映射存储数据 List序列(ArrayList) Queue队列(LinkedList链表) set集(HashSet)
    查看全部
  • Collection and Map ---------random string import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { String base="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; List<String> list1=new ArrayList(); Random rm1 = new Random(); Random rm2 = new Random(); for(int i=0;i<10;i++){ int x=rm2.nextInt(9)+1; //System.out.println("x:"+x); String str=""; for(int s=0;s<x;s++){ char c1 = base.charAt(rm1.nextInt(61)); str=str+String.valueOf(c1); // System.out.println("str:"+str); } list1.add(str); System.out.println("no"+list1.size()+":"+str); } System.out.println("----------------------------"); Collections.sort(list1); for(String str2:list1){ System.out.println(str2); } } }
    查看全部
  • HashMap类 HashMap是Map的一个重要实现类,最常用,基于哈希表实现 HashMap中的Entry对象是无序排列 Key值和Value值都可以为null,但是一个HashMap只能有一个key值为null的映射(key不可重复) get(key) return value ,when not exist return null put(key,value) /**测试HashMap--put的返回值结果:当HashMap中key不重复时,返回的是null,当key已存在时,返回旧值 */ private static void testPut(){ String key1 = "key1"; String key2 = "key2"; String value1="value1"; String value2="value2"; String value3="value3"; HashMap<String,String> hashMap = new HashMap<String,String>(); String result1 = hashMap.put(key1, value1);//null String result2 = hashMap.put(key2, value2);//null String result3 = hashMap.put(key1, value3);//value1 System.out.println(result1); System.out.println(result2); System.out.println(result3); } keySet() 取得全部KEY值返回array size() remove(key) Scanner console =new Scannrer(System.in) //取得输入内容 String mm1= console.next();
    查看全部
  • hashlist 泛型: 集合中的元素,可以是任意类型的对象(对象的引用) 如果把某个对象放入集合,则会忽略它的类型, 当作Object处理 泛型规定某个集合只可以存放特定类型的对象 会在编译期间进行类型检查, 可以直接按指定类型获取集合元素 1.泛型不能是基础类型,只能是引用类型, 如果想使用基础类型时,只能使用包装类 int - Integer ,double-Double Set接口实现类 - HashSet Set饰元素无序且不可重复的集合,称为集 HashSet-哈希集,是Set的一个重要实现类(因为无序无法指定index,所以没有Set方法 Map接口 Map提供了映射关系,其中的元素是以键值对(key-value)形式存储,能实现根据Key快速查找Value Map中的键值对以Entry 类型的对象实例形势存在 Key键值不可以重复,value值可以 每个键最多能映射到一个值 Map接口提供了分别返回Key值集合,value值集合以及Entry(键值对)集合到方法 Map支持泛型,如:Map<K,v> HashMap类 HashMap是Map的一个重要实现类,最常用,基于哈希表实现 HashMap中的Entry对象是无序排列 Key值和Value值都可以为null,但是一个HashMap只能有一个key值为null的映射(key不可重复) get(key) return value ,when not exist return null put(key,value) keySet() 取得全部KEY值返回array size() remove(key) entrySet() Set<Entry<key,value>> entrySet = xxx.entrySet(); for(Entry<key,value> entry:entrySet){ System.outprintln(entry.getKey()+entry.getValue()); }
    查看全部
  • int length() 返回当前字符串的长度 int indexOf(int ch) 查找ch字符在该字符串中第一次出现的位置 int indexOf(String str) 查找str子字符串在该字符串中第一次出现的位置 int lastIndexOf(int ch) 查找ch字符在该字符串中最后一次出现的位置 int lastIndexOf(String str) 查找str子字符串在该字符串中最后一次出现的位置 String substring(int beginIndex) 获取从beginIndex位置开始到结束的子字符串 String substring(int beginIndex, int endIndex) 获取从beginIndex位置开始到endIndex位置的子字符串 String trim() 返回去除了前后空格的字符串 boolean equals(Object obj) 将该字符串与制定对象比较,返回true或false String toLowerCase() 将字符串转换为小写 String toUpperCase() 将字符串转换为大写 char charAt(int index) 获取字符串中指定位置的字符 String[] split(String regex, int limit) 将字符串分割为子字符串,返回字符串数组 byte[] getBytes() 将该字符串转换为byte数组 1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1<br> 2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1<br> 3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符
    查看全部
  • 练习题
    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!