黑马程序员——工具类Collections的使用

工具类Collections的使用

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class CollectionsDemos
{

	public static void main(String[] args)
	{
		// TODO Auto-generated method stub

		ArrayList<String>  al = new ArrayList<String>();
		//调用自定义方法向集合中添加元素
		addElements(al);//
		System.out.println(al);//[afgd, dfdf, cc, kkk, kkk]
		//调用方法对集合内的元素进行排序
		Collections.sort(al);
		System.out.println(al);//[afgd, cc, dfdf, kkk, kkk]
		//调用自定义比较器进行比较,依据字符串的长度对其进行比较
		Collections.sort(al, new  MyComparaLength());
		System.out.println(al);//[cc, kkk, kkk, afgd, dfdf]
	}

	private static void addElements(ArrayList<String> al) {
		// 向容器中添加元素
		al.add("afgd");
		al.add("dfdf");
		al.add("cc");
		al.add("kkk");
		al.add("kkk");
	}

}
//自定义一个比较器,以字符串的长度为标准进行比较
 class MyComparaLength implements Comparator<String>
{

	@Override
	public int compare(String o1, String o2) {
		// TODO Auto-generated method stub
		int num = o1.length()-o2.length();
		if(num==0)
			return o1.compareTo(o2);
		return   num;
	}

	}

运行程序:

	//获取集合中最长的元素

		String max = Collections.max(al,new MyComparaLength());
		System.out.println("集合中最长的元素是:"+max);

运行程序

TreeSet 集合的演示

import java.util.Collections;
import java.util.Comparator;
import java.util.TreeSet;

public class CollectionsDemo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());

		ts = new TreeSet<String>(Collections.reverseOrder(new MyComparaLength()));
		ts.add( "abc");
        ts.add( "hahaha");
        ts.add( "zzz");
        ts.add( "aa");
        ts.add( "cba");
		System.out.println(ts);//[hahaha, zzz, cba, abc, aa]
	}
}
class MyComparaLength implements Comparator<String>
{

	@Override
	public int compare(String o1, String o2) {
		// TODO Auto-generated method stub
		int num = o1.length()-o2.length();
		if(num==0)
			return o1.compareTo(o2);
		return   num;
	}

	}

运行程序:

ArrayList集合的演示

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListDemos2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ArrayList<String> a = new ArrayList<String>();
		a.add( "abc");
        a.add( "hahaha");
        a.add( "zzz");
        a.add( "aa");
        a.add( "cba");
		System.out.println(a);//[abc, hahaha, zzz, aa, cba]
		Collections.replaceAll(a, "aa", "5555");
		System.out.println(a);//[abc, hahaha, zzz, 5555, cba]
	}

}

运行程序:

ArrayList<String> a = new ArrayList<String>();
		a.add( "abc");
        a.add( "hahaha");
        a.add( "zzz");
        a.add( "aa");
        a.add( "cba");
		System.out.println(a);//[abc, hahaha, zzz, aa, cba]
		Collections.replaceAll(a, "aa", "5555");
		System.out.println(a);//[abc, hahaha, zzz, 5555, cba]
		//对集合中元素的位置进行随机置换
		Collections.shuffle(a);
		System.out.println(a);//[5555, cba, abc, hahaha, zzz]
时间: 2024-10-05 17:17:57

黑马程序员——工具类Collections的使用的相关文章

黑马程序员---工具类---OC自定义函数---计算当前路径下所有文件的总行数

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------ 计算当前路径下所有文件的总行数 /* 计算当前路径下所有文件的总行数 涉及到NSArray.NSString.NSFileManager */ // 计算当前全路径(文件\文件夹)下所有文件的行数 // 接收参数path:文件的全路径(文件.文件夹) NSUInteger codeLinesCount(NSString *path) { // 1.获得文件管理者    单例模式:整个程序的

黑马程序员——19,Collections工具类,Arrays工具类,高级for循环,可变参数,静态导入

------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 黑马程序员--19,Collections工具类,Arrays工具类 /* Collections是一个类,注意,这里后面带有一个s 千万不要和Collection弄混了!Collection只是接口而已. 两者要区别开来. Collect

黑马程序员--oc 类的封装 继承 和多态

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 成员变量的命名规范: 成员变量名要以 _开头 作用: 1.可以让成员变量和get方法的名称区分开 2.可以和局部变量区分开,一看到以_开头的变量一般都是成员变量 封装: 在定义成员变量时,尽量不要用@public 这种写法 ,而是使用set方法和get方法 @interface Student : NSObject { int _age; } /* set方法: 作用:提供一个方法给外界设置成

黑马程序员—12-oc类跟对象

一.类和对象的关系 面向对象中有2个非常重要的概念:类和对象 1. 如何创建对象 1)  面向对象解决问题的时候必须有对象,那如何创建对象呢? 2)  现实生活的例子:如何创造汽车对象? a)   需要先有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为) Ø   属性:轮子数.时速 Ø   功能(行为):跑 b)   然后再根据图纸上的描述生成汽车 c)   每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例 d)   图纸是抽象的,房子是具体的.图纸是对房子对象的高度概括

黑马程序员——JAVAString类学习总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- www.itheima.com Java中String是一个特殊的包装类数据有两种创建形式: String s = "abc"; String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值'a'.'b'

黑马程序员-File类+递归的简单应用

Java File类   Java.io.File Java文件类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等. File对象代表磁盘中实际存在的文件和目录.通过以下构造方法创建一个File对象. 通过给定的父抽象路径名和子路径名字符串创建一个新的File实例. File(File parent, String child); 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例. File(String pathname) 根据 pa

黑马程序员——File类

1.File类用来将文件或者文件夹封装成对象  方便对文件架的属性信息进行操作  File对象可以作为参数传给流的构造函数 将已有的或者未出现的文件或者文件夹封装成对象   File类有一个静态属性separator,表示与系统有关的目录分隔符,以字符串表示 2.File类的常见方法  1.创建     boolen createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false          和输出流不一样,输出流对象已建立就创建文件,如果文件存在,会覆盖

黑马程序员___OC类的加载和初始化

构造方法 完整的创建一个可用的对象需要两步 1.分配储存空间   +alloc 2.初始化   -init Person *p1 = [Person alloc] Person *p2 = [p1 init] 相当于:Person *p = [Person new] ,但是这个方法虽然可以快速创建一个新的对象,但是不能对新对象进行有选择的初始化 有时候我们想创建的对象都有一个初始值,这个时候就可以重写构造方法 - (id)init { //一定要调用回super的init方法,初始化父类中声明的

黑马程序员_类对象创建代码的执行顺序测试总结

class StaticCode { // 类的非静态成员变量(实例变量)定义语句: // 作用:用来存储对象的特有数据的成员变量. // 运行:当类对象被创建时就执行,按照顺序自上而下执行,和构造代码块平级.(即当有多个构造函数 // 代码块和多个非静态成员变量时,JVM按照自上而下的顺序来执行所有语句,包括构造代码块里的代码 // 和非静态成员的声明.) // 存储位置:非静态变量位于堆内存中的对象实体中. int num = 3; // 构造代码块 { System.out.println