ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

常用工具类API

2022-08-23 13:32:31  阅读:145  来源: 互联网

标签:set String int System API println 常用工具 out


常用工具类API

//判断闰年
public static int is_leap_year(int year) {
if(year%4000||(year%100!=0&&year%40)) {
return 1;
}
return 0;
}
//判断某天是星期几
public static void weeks() {//这里举例2021年11月18日是星期四,使用是改变参数
Calendar calendar=Calendar.getInstance();
//Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 10);//月份下标从0开始
calendar.set(Calendar.DAY_OF_MONTH, 18);
System.out.print(calendar.get(Calendar.DAY_OF_WEEK));//sunday是1

 }

//求最大公约数
public static int gcd(int a,int b) {
if(a%b==0)
return b;
return gcd(b,a%b);
}
//求N的所有约数,用list存储
public static List account1() {
long N=2004;
List list = new ArrayList();
for (long i = 1; i*i<=N; i++) {
if (N%i == 0) {
list.add(i);
if (N/i != i) {
list.add((N/i));
}
}
}
return list;

}


//Math里面的常用方法:Max,Min,abs,Random
public void show1() {
int i=2;
int j=3;
int k1=Math.max(i, j);
int k2=Math.min(i,j);
int k3=(int)Math.random();//[0,1);
int k4=Math.abs(-4);//取绝对值
int k5=(int)Math.sqrt(9);//求平方根
}
//map接口常用实现类HashMap集合、LinkedHashMap集合
/*1. HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。
由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

  2.LinkedHashMap<K,V>:HashMap下有个子类LinkedHashMap,
  存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;
  通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

  注意:Map接口中的集合都有两个泛型变量<K,V>,在使用时,要为两个泛型变量赋予数据类型。
  两个泛型变量<K,V>的数据类型可以相同,也可以不同。
 
*/
  public static void show2() {
	  //创建一个hashmap
	  Map<Integer,String>hashmap=new HashMap<Integer,String>();
	  //put方法放入数据
	  hashmap.put(1, "jack");
	  hashmap.put(2, "李四");
	  hashmap.put(3, "金四");
	  //get方法获取
	  String name1=hashmap.get(1);
	  //remove方法移除
	 // hashmap.remove(1);
	  /*重点:遍历
	   * 第一种方法
	  1.使用set集合存储所有的键值(key)
	  2.普通迭代器或者增强for
	  */

// Setkeyset=hashmap.keySet();
// Iterator it=keyset.iterator();
// while(it.hasNext()) {
// //得到key
// int key=it.next();
// //通过key调用hashmap的get方法
// String name=hashmap.get(key);
// System.out.print(key+" "+name);
// System.out.println();
// }
//第二种方法:增强for,使用For entry
for(Entry<Integer,String> entry:hashmap.entrySet()) {
int key=entry.getKey();
String name=entry.getValue();
System.out.print(key+" "+name);
System.out.println();

		 }

}
//set集合的使用,常用HashSet、 LinkedHashSet、TreeSet
/*
Set接口中存放的元素是无序的并且是不可重复的,因此被称为数据集

1.HashSet中是不能出现重复数据的; 可以写入空数据。数据是无序的。
2.LinkedHashSet 不能出现重复数据的; 可以写入空数据。 数据是有序的
3.TreeSet 不能出现重复数据的;不能写入空数据。数据是有序的
*/
public static void show4() {
Set set = new HashSet();
for(int i= 0;i<6;i++){
set.add(i+"");
}
//添加方法都是add,使用迭代器遍历
set.add("3"); //HashSet重复数据,不会写入
set.add(null); //HashSet可以写入空数据
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next()); //HashSet输出是无序的

    	}		  
  }

//基本类型之间的转换,常用类型转String 和 String转化成char[]
public static void show3() {
//
String number="12345";
int a1=Integer.parseInt(number);
System.out.println(a1);
//
String name="jack";
char[]ch1=null;
ch1=name.toCharArray();//使用toCharArray()方法转化成字符数组
for(int i=0;i<ch1.length;i++) {
System.out.print(" "+ch1[i]);
}
System.out.println();
//
char[]ch2= {'a','b','c'};
String str=null;
str=String.valueOf(ch2);//使用String.valueOf()方法转化成字符串
System.out.println(str);
//
int a2=ch2[2]-'a';
System.out.println(a2);
char ch3= (char) (a2+'a');
System.out.println(ch3);

}
//String 的常用方法
public static void show7() {
String str="abcdefghijk";
//取该下标的元素
str.charAt(0);
//截取字符串:第一个参数是起始下标,第二个是结束下标(方法已重载,可以省)
String str1=str.substring(0,str.length());//
System.out.println(str1);
}


//杨辉三角练习
public static void show1(int m) {
int n=10;
Listlist=new ArrayList();
int arr[][] = new int[n][];
for (int i = 0; i < n; i++) {
arr[i] = new int[i + 1];
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
arr[i][j] = 1;
}else {
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
//System.out.print(arr[i][j] + " ");
list.add(arr[i][j]);
}
//System.out.println();
}
//System.out.println();
//取出list中第一个值为6的下标,+1表示第几个
System.out.println(list.indexOf(6)+1);

}

//子串数目问题,set集合自动去重,
public static void show2() {
//Scanner sc=new Scanner(System.in);
// String str=sc.next();//得不到中间空格
//String str="0100110001010001";
String str="ababc";
char[]ch=str.toCharArray();
long ans=0;
for (int i = 0; i < ch.length; i++) {
HashSet set=new HashSet();
for (int j = i; j < ch.length; j++) {
set.add(ch[j]);
ans+=set.size();
Iterator it = set.iterator();
while(it.hasNext()){
System.out.print(it.next()+" "); //HashSet输出是无序的
}
System.out.println();
}
System.out.println();
}
System.out.println(ans);
}

//子串数目问题2,只求所有子串
public static void show3() {
String str="0100110001010001";
char[]ch=str.toCharArray();
Set set1=new LinkedHashSet();
for (int i = 0; i < ch.length; i++) {

		for (int j = i+1; j < ch.length+1; j++) {
			String str1=str.substring(i,j);
			set1.add(str1);
		}
		Iterator<Character> it = set1.iterator();
    	while(it.hasNext()){
		System.out.print(it.next()+" ");		
    	}
    	System.out.println();
		
	}
	System.out.println(set1.size());
}

//时间显示
public static void show4() {
Scanner cin = new Scanner(System.in);
//题目测试的数值最大不超过10的18次方,所以存储输入的数据类型用long
long n = cin.nextLong();
//先转化成秒
n /= 1000;
//超过24小时的时间舍去,只保留最后一天的时间即可
n %= (24 * 60 * 60);
//输出对应时间即可
System.out.printf("%02d:", n / 3600);
System.out.printf("%02d:", n / 60 % 60);
System.out.printf("%02d\n", n % 60);
cin.close();

}

//
public void show5() {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int sum=0;
int []arr=new int [n];
for(int i=0;i<n;i++) {
arr[i]=sc.nextInt();
sum+=arr[i];
}
}
//队列的使用
public static void show6() {
//LinkedList实现了Queue,
// Queuea = new LinkedList();
// a.offer(1);
// a.add(2);
// for(int i:a) {
// System.out.println(i);
// }
// System.out.println(a.element());
// System.out.println(a.poll());
// for(int i:a) {
// System.out.println(i);
// }
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
Queuequeue=new LinkedList();
for(int i=1;i<=n;i++) {
queue.offer(i);
}
int cur=1;//当前报的数字
while(queue.size()>1) {
int x=queue.element();
queue.poll();
if(cur==m)
cur=1;
else {
queue.offer(x);
cur++;
}
}
System.out.println(queue.element());
}

标签:set,String,int,System,API,println,常用工具,out
来源: https://www.cnblogs.com/cn-acheng/p/16615798.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有