Java连载92-Collections工具类、泛型初步

一、关于集合工具类

java.utils.Collections;

Collections工具类可以对List集合中的元素进行排序,但是集合中的元素必须是“可以比较的”,实现Comparable接口。

package com.bjpowernode.java_learning;

import java.util.Collections;

import java.util.*;

?

public class D92_1_CollecitonsToolsClass {

  public static void main(String[] args) {

    //使用Collections工具完成集合的排序

    List l = new ArrayList();

    //添加元素

    l.add(10);

    l.add(5);

    l.add(9);

    l.add(20);

    l.add(30);

    //遍历

    for(int i=0;i<l.size();i++) {

      System.out.println(l.get(i));

    }

    System.out.println("=============");

    //或者这么写,使用迭代器

    Iterator it = l.iterator();

    while(it.hasNext()) {

      System.out.println(it.next());

    }

    System.out.println("=============");

    //排序

    Collections.sort(l);

    for(Iterator it2 = l.iterator();it2.hasNext();) {

      System.out.println(it2.next());

    }

    System.out.println("=============");

    //给定Set集合

    Set s = new HashSet();

    s.add(1);

    s.add(10);

    s.add(9);

    s.add(8);

    s.add(7);

    //对set集合进行排序

    //collections.sort(s);//这个编译时失败,不能使用这个方法

    //将set集合转化为List集合

    List listS = new ArrayList(s);

    Collections.sort(listS);

    for(int i=0;i<listS.size();i++) {

      System.out.println(listS.get(i));

    }

    System.out.println("=============");

    //创建List集合,,List集合中存储Person类型,是否可以排序?

    List ps = new ArrayList();

    ps.add(new Person92());

    ps.add(new Person92());

    ps.add(new Person92());

    ps.add(new Person92());

    Collections.sort(ps);//如果不把Person92类中的compareTo方法实现,这里就会报错,因为没有定义排序方法,就无法进行排序

    //将ArrayList集合转换成线程安全的

    List myList = new ArrayList();

    Collections.synchronizedList(myList);

  }

}

class Person92 implements Comparable{

  public int compareTo(Object o){

    return 1;

  }

}

?

二、泛型初步

1.关于JDK5.0的新特性:泛型(编译期概念)

以下程序没有使用泛型缺点是什么?

如果集合不使用泛型的话,则集合中的元素类型不统一,在遍历集合中的时候,只能拿出来Object类型,需要做大量的?强制类型转换,非常麻烦。


package com.bjpowernode.java_learning;

?

import java.util.*;

?

public class D92_2_GenericityInitial {

  public static void main(String[] args) {

    //创建一个集合,存储A,B,C

    Set s = new HashSet();

    //创建对象

    A92 a = new A92();

    B92 b = new B92();

    C92 c = new C92();

    s.add(a);

    s.add(b);

    s.add(c);

    //需求:遍历集合,如果是A92类型调用m1方法,B92类型调用m2方法,C92类型调用m3方法

    Iterator i = s.iterator();

    while(i.hasNext()) {

      Object o = i.next();

      //只能做大量的强制类型转换

      if(o instanceof A92) {

        A92 a1 = (A92)o;

        a1.m1();

      }else if(o instanceof B92) {

        B92 b1 = (B92)o;

        b1.m2();

      }else if(o instanceof C92) {

        C92 c1 = (C92)o;

        c1.m3();

      }

    }

  }

?

}

class A92{

  public void m1() {

    System.out.println("A ‘s m1..");

  }

}

class B92{

  public void m2() {

    System.out.println("B ‘s m1..");

  }

}

class C92{

  public void m3() {

    System.out.println("C ‘s m1..");

  }

}

2.为什么引入泛型

(1)可以统一集合中的?数据类型;

(2)可以减少强制类型转化?。

3.?泛型的优缺点:

?优点:统一类型,减少强制类型转化?。

?缺点:只能存储?一种数据类型。

下次再讲代码实例

四、源码:

D92_1_CollecitonsToolsClass.java

D92_2_GenericityInitial.java

https://github.com/ruigege66/Java/blob/master/D92_1_CollecitonsToolsClass.java

https://github.com/ruigege66/Java/blob/master/D92_2_GenericityInitial.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

原文地址:https://www.cnblogs.com/ruigege0000/p/12417173.html

时间: 2024-08-04 06:45:19

Java连载92-Collections工具类、泛型初步的相关文章

java 18 - 10 Collections工具类的常用方法

Collections:是针对集合进行操作的工具类,都是静态方法. 要知道的方法 A:public static <T> void sort(List<T> list):排序 默认情况下是自然顺序. B:public static <T> int binarySearch(List<?> list,T key):二分查找 C:public static <T> T max(Collection<?> coll):最大值 D:publi

Java容器---Arrays &amp; Collections工具类

1.Array & Arrays 与Collection & Collections区别 (1)Collection": 是一个接口,与其子类共同组成一个Collection集合框架: Collections: 是一个类,一个服务于集合的工具类, 提供一系列静态方法实现对各种集合的搜索.排序.线程安全化等操作. (2)Array:         提供了动态创建和访问 Java 数组的方法: Arrays:        用于操作数组的工具类,里面都是操作数组的静态方法.其中一个

JAVA-Properties类和Collections工具类

Properties类 import java.io.FileReader; import java.util.Enumeration; import java.util.Properties; /* * Properties类,键值对集合,是Hashtable的子类 * 但只能存储字符串键值对 */ public class Test07 { public static void main(String[] args) throws Exception { test1(); test2();

Java集合框架:Collections工具类

java.util.Collections工具类提供很多有用的方法,使得程序猿操作集合类的时候更加的方便容易,这些方法都是静态的.整个Collections工具类源码差不多有4000行,我们针对一些典型的方法进行阐述. 1. 调用一个空List,Set,Map public static final List EMPTY_LIST = new EmptyList<>(); public static final Map EMPTY_MAP = new EmptyMap<>(); p

JAVA Collections工具类sort()排序方法

主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static <T extends Comparable<? super T>> void sort(List<T> list) 说明:该方法中的泛型<T>都是Comparable接口的子类,即只有是Comparable接口子类类型的数据,才能进行比较排序.如果其他类型的数据要进行比较排序,必须继承Co

9.9-全栈Java笔记:遍历集合的N种方式总结&Collections工具类

遍历集合的N种方式总结 [示例1]遍历List方法1,使用普通for循环 for(int i=0;i<list.size();i++){         //list为集合的对象名 String temp = (String)list.get(i); System.out.println(temp); } [示例2]遍历List方法2,使用增强for循环(使用泛型定义类型!) for (String   temp : list) { System.out.println(temp); } [示例

黑马程序员---java基础---集合框架工具类:Collections和Arrays

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------        Collections 一.概述 Collections是对集合框架的一个工具类.它里边的方法都是静态的,不需要创建对象.并未封装特有数据. 在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二

Java中自定义对象使用Collections工具类中的Sort方法

Collections工具类中的sort方法有两种形式: (1) sort(List<T> list) (2) sort(List<T> list, Comparator<? super T> c) 第一种方法中List类型的对象必须实现Comparable接口,此外,List中的元素必须可比较. 我们先定义类 package com.dongye.sort; import java.util.ArrayList; import java.util.Collection

java中常用的工具类(三)

继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

迭代器遍历【List、Set、Map】&amp;&amp; 遍历集合的方法总结 &amp;&amp; Collections工具类

整理&&总结 迭代器遍历Iterator[List.Set.Map]example 1 package boom.collection; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.HashSet; 6 import java.util.Iterator; 7 import java.util.List; 8 import java.util.Map; 9 import jav