package cn.tedu.collection;
import org.junit.Test;
import java.util.Arrays;
//本类用于集合前的一些测试
public class Demo {@Testpublic void saveStudent(){Student s1 = new Student("河莉秀",26,'女');Student s2 = new Student("木村拓哉",29,'男');Student s3 = new Student("工藤静香",25,'女');Student[] s = new Student[3];s[0] = s1;s[1] = s2;s[2] = s3;System.out.println(Arrays.toString(s));}@Testpublic void testArrays(){int[] a = {1,2,3};int[] a2 = new int[3];a2[0] = 1;a2[1] = 2;a2[2] = 3;System.out.println(Arrays.toString(a));System.out.println(Arrays.toString(a2));}
}
package cn.tedu.collection;public class Student {String name;int age;char gender;public Student() {System.out.println("中午吃啥好");}public Student(String name, int age, char gender) {this.name = name;this.age = age;this.gender = gender;System.out.println("下午吃啥好");}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", gender=" + gender +'}';}
}
package cn.tedu.collection;
import java.util.ArrayList;
import java.util.List;
//本类用于测试泛型的优点
public class TestGeneric1 {public static void main(String[] args) {/*1.泛型是怎么来的?-->集合想要模拟数组的数据类型检查*/String[] a = new String[5];a[2] = "楚人美";a[4] = "伽椰子";//数组的好处:在编译期检查数据的类型,如果不是要求的数据类型就会报错
//        a[0] = 1;
//        a[1] = 8.8;
//        a[3] = 'c';/*2.泛型通常结合着集合一起使用*//*3.引入泛型--主要目的是想通过泛型来约束集合中的元素类型*//*4.引入泛型的好处:可以把报错的时机提前,在编译期就报错,而不是运行后才抛出异常* 向集合中添加元素是,会先检查元素的数据类型,不是要求的类型就编译失败*/List list = new ArrayList();//没有泛型,数据类型根本没有约束--太自由list.add("汪汪");list.add(1);list.add(8.8);list.add('a');System.out.println(list);List<String> list2 = new ArrayList();list2.add("我是雷神托尔");list2.add("为了北方神的荣耀");
//        list2.add(1);
//        list2.add(1.1);
//        list2.add('c');System.out.println(list2);/*5.<type>--type的值应该如何写?* 需要查看集合要存放的数据类型是什么,根据类型来定义* 但注意:type必须是引用类型,不是基本类型*/List<Integer> list3 = new ArrayList();list3.add(100);list3.add(200);list3.add(300);}
}
package cn.tedu.collection;
//本类用于测试泛型的优点2
public class TestGeneric2 {public static void main(String[] args) {Integer[] a = {1,2,3,4,5,6,7,8,9,10};print(a);String[] b = {"鹿力大仙","虎力大仙","羊力大仙","青狮精","白象精","金翅大鹏王","孔雀大明王"};print(b);Double[] c = {6.0,6.6,6.66,6.666,6.6666};print(c);}/*1.泛型可以实现通用代码的编写,使用E表示元素的类型是Element类型* 2.泛型的语法要求:* 如果在方法上使用泛型,必须两处同时出现,一个是传入参数的类型* 一个是返回值类型前的泛型类型,表示这是一个泛型方法*/private static <E> void print(E[] e) {for(E ddd: e){System.out.println(ddd);}}//    private static void print(Double[] n){
//        for(Double ccc: n){
//            System.out.println(ccc);
//        }
//    }
//    private static void print(String[] n){
//        for(String bbb: n){
//            System.out.println(bbb);
//        }
//    }
//    private static void print(Integer[] n){
//        for(int i = 0;i<n.length;i++){
//            System.out.println(n[i]);
//        }
//        /*高效for循环/foreach循环
//        * 好处:比普通for循环写法简便,并且效率还高
//        * 坏处:没有办法按照下标来操作值,只能从头到尾依次遍历
//        * 语法:for(2 3:1){循环体}
//        * 1号是要遍历的内容,2 3是每轮遍历到的具体元素的类型与名字*/
//        for(Integer aaa: n){
//            System.out.println(aaa);
//        }
//    }
}
package cn.tedu.collection2;
import com.sun.deploy.panel.JreTableModel;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;//本类用于测试Collection接口
public class TestCollection2 {public static void main(String[] args) {//<Integer>是泛型,用来约束集合中的元素类型,不能是基本类型,必须是引用类型Collection<Integer> c = new ArrayList();c.add(100);c.add(200);c.add(300);c.add(400);c.add(500);System.out.println(c);//直接打印集合对象的名字,查看集合中存入的具体元素//c.clear();//清空集合//System.out.println(c);System.out.println(c.hashCode());//获取集合对象对应的哈希码值System.out.println(c.equals(200));//false,集合对象c与元素200不等System.out.println(c.contains(200));//true,判断集合是否包含指定元素200System.out.println(c.isEmpty());//false,判断集合是否为空System.out.println(c.remove(100));//删除集合中的指定元素100System.out.println(c);System.out.println(c.size());//4,获取集合中的元素个数Object[] array = c.toArray();//将指定集合转为数组Object[]System.out.println(Arrays.toString(array));Collection<Integer> c2 = new ArrayList<>();c2.add(2);c2.add(4);c2.add(5);System.out.println(c2);c.addAll(c2);//将c2集合的所有元素添加到c集合中System.out.println(c);System.out.println(c2);System.out.println(c.containsAll(c2));//true,判断c集合是否包含c2集合的所有元素c.retainAll(c2);//保留c集合中那些也属于c2集合的公共元素System.out.println(c);c.removeAll(c2);//删除c集合中属于c2集合的所有元素System.out.println(c);//[]/*迭代步骤* 1.获取集合对应的迭代器* 2.通过迭代器判断集合中是否有下一个元素可以迭代* 3.通过迭代器获取当前迭代到的元素*/Iterator<Integer> it = c2.iterator();while(it.hasNext()){//如果有下一个元素System.out.println(it.next());//打印本轮循环到的元素}}
}
package cn.tedu.collection2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
//本类用于测试List接口
public class TestList {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("大力娃");list.add("千顺娃");list.add("头铁娃");list.add("喷火娃");list.add("吐水娃");list.add("隐身娃");list.add("小紫娃");System.out.println(list);//list.clear();//System.out.println(list);System.out.println(list.contains("喷火娃"));System.out.println(list.equals("吐水娃"));System.out.println(list.isEmpty());System.out.println(list.remove("隐身娃"));System.out.println(list.size());System.out.println(Arrays.toString(list.toArray()));//将集合转为数组/*List集合是有序的,所以可以根据索引来操作集合中的元素* 可以存放重复的数据*/list.add("小虎队");list.add(1,"许仙");//在指定的索引处添加元素list.add(6,"小虎队");System.out.println(list);System.out.println(list.indexOf("小虎队"));//6,获取元素第一次出现的下标System.out.println(list.lastIndexOf("小虎队"));//8,获取元素最后一次出现的下标System.out.println(list);list.remove(5);//根据索引删除元素System.out.println(list);System.out.println(list.get(3));//头铁娃,根据下标获取元素System.out.println(list.set(2,"蝎子莱莱"));//修改指定下标位置的元素为蝎子莱莱System.out.println(list);List<String> list2 = new ArrayList<>();list2.add("1");list2.add("2");list2.add("3");list2.add("4");System.out.println(list2);list.addAll(list2);System.out.println(list);//默认将2集合的元素追加到1集合末尾list.addAll(1,list2);//指定下标,将2集合的所有元素添加到1集合中System.out.println(list);}
}
package cn.tedu.seri;
import java.io.Serializable;
//本类用于封装学生类,用作测试序列化的物料类
/*如果本类的对象想要被序列化输出,那么本类必须实现可序列化接口,否则会报错
* 报错信息:java.io.NotSerializableException:cn.tedu.seri.Student
* Serializable接口是一个空接口,里面一个方法也没有,作用是当做标志,标志这个类可以被序列化*/
public class Student implements Serializable {private static final long seriaVersionUID = 1L;private String name;private int age;private String addr;private char gender;public Student() {System.out.println("我什么都没有");}public Student(String name, int age, String addr, char gender) {this.name = name;this.age = age;this.addr = addr;this.gender = gender;System.out.println("你爱我像谁");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}//重写toString方法来查看对象的类型+属性+属性值@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", addr='" + addr + '\'' +", gender=" + gender +'}';}
}
package cn.tedu.seri;
import java.io.*;//本类用于测试序列化和反序列化
/*序列化:是指把程序中的Java对象,永久保存在磁盘中,相当于是写出的过程
* 方向:out,用到的流是:IbjectOutputStream
* 反序列化:是指把已经序列化在文件中保存的数据,读取/恢复到java程序中的过程
* 方向:in,用到的流是:ObjectInputStream*/
public class TestSerializable {public static void main(String[] args) {method1();//序列化method2();//反序列化}//序列化方法private static void method1() {ObjectOutputStream out = null;try{out = new ObjectOutputStream(new java.io.FileOutputStream("E:\\ready\\2.txt"));Student obj = new Student("海绵宝宝",3,"大海里",'男');out.writeObject(obj);System.out.println("序列化成功");}catch(Exception e){System.out.println("序列化失败");e.printStackTrace();}finally {try{out.close();}catch(IOException e){e.printStackTrace();}}}private static void method2() {ObjectInputStream in = null;try{in = new ObjectInputStream(new FileInputStream("E:\\ready\\2.txt"));System.out.println(in.readObject());System.out.println("反序列化成功");}catch(Exception e){System.out.println("反序列化失败");e.printStackTrace();}finally {try{in.close();}catch(IOException e){e.printStackTrace();}}}
}
package cn.tedu.test;public class Test1 {public static void main(String[] args) {objPoolTest();}public static void objPoolTest() {int i = 40;int i0 = 40;Integer i1 = 40;Integer i2 = 40;Integer i3 = 0;Integer i4 = new Integer(40);Integer i5 = new Integer(40);Integer i6 = new Integer(0);Double d1=1.0;Double d2=1.0;System.out.println("i=i0\t" + (i == i0));System.out.println("i1=i2\t" + (i1 == i2));System.out.println("i1=i2+i3\t" + (i1 == i2 + i3));System.out.println("i4=i5\t" + (i4 == i5));System.out.println("i4=i5+i6\t" + (i4 == i5 + i6));System.out.println("d1=d2\t" + (d1==d2));System.out.println();}}
package cn.tedu.test;
import java.util.Arrays;
import java.util.Scanner;
public class Test2 {public static void main(String[] args) {String s = new Scanner(System.in).nextLine();char[] ch = s.toCharArray();System.out.println(Arrays.toString(ch));char[] ch1 = new char[ch.length];int j=0;for (int i = 0; i <ch.length ; i++) {if(ch[i]>='0' && ch[i]<='9'){ch1[j] = ch[i];j++;System.out.println(ch1);}}Arrays.sort(ch1);System.out.println(ch1);}
}
package cn.tedu.test;
import java.lang.reflect.Array;
import java.util.List;
import java.util.Scanner;
public class Test3 {public static void main(String[] args) {String s = new Scanner(System.in).nextLine();char[] ch = s.toCharArray();char c = ch[0];for (int i = 0; i <ch.length ; i++) {if(ch[i] ==c){System.out.println(i);}}}
}
package cn.tedu.test;
import java.util.Scanner;
//打印菱形
/*题目:打印出如下图案(菱形)###4##3*5#2***61*****7#2***6##3*5###4*/
public class Test4 {public static void main(String[] args) {//1.提示用户输入要打印的行数System.out.println("请输入您要打印的星星的行数");//2.声明四个变量int i = new Scanner(System.in).nextInt();//2.1.接收用户输入的数值,用于控制轮数int j = i;//2.2.用于控制打印次数int k = 1;//2.3.最小边界int l = 2*i-1;//2.4.最大边界//3.外层循环控制打印轮数for(;i>0;i--){//4.内层循环打印星数,将空白字符实体化进行打印for(int x=1;x<=j;x++) {//5.if语句判断要打印的是空白字符还是"*"号/*解析判断语句:* 单独看判断语句 x<i; x++; i-- 打印的是左侧上宽下窄的直角三角形* 判断语句 x<k; x++; k++ 打印的是左侧上窄下宽的直角三角形* 而 x>l; x++; l-- 打印的右侧上窄下宽的直角三角形* 当然,他们的判断标准需要用双或(||)来连接,否则你得到的就是两个小三角了* 而这三个直角三角形用空白字符打印后,在他们的留白部分用"*"打印* 我们便可以得到一个菱形*/if(x<i || x<k || x>l) {System.out.print(" ");//6.打印完空白字符后直接continue结束本轮内循环continue;}//7.不符合判断条件时打印"*"号System.out.print("*");}//8.每轮将j的数值加1,同时将i的数值减1,便可得到一个正三角形j++;k++;l--;//9.每轮外循环换行一次System.out.println();}}
}

漫漫Java学习路,第十四天相关推荐

  1. 漫漫Java学习路,第四天

    package cn.tedu.basic; //本类用于测试for循环 public class TestFor {public static void main(String[]ages) {fo ...

  2. 漫漫Java学习路,第二天

    package cn.tedu.basic; //本类用于测试注释是否会被运行 public class CommentDemo {//我是一个单行注释/* 我* 是* 一* 个* 多* 行* 注* ...

  3. 漫漫Java学习路,第七天

    package cn.tedu.oop; //本类用于测试代码块 public class TestBlock {public static void main(String[] args) {//S ...

  4. 漫漫Java学习路,第五天

    package cn.tedu.array; import java.util.Arrays; //本类用于练习数组的创建 public class TestArray {public static ...

  5. Java学习笔记-第十四章-NIO与NIO2

    目录 一.NIO 二.NIO2 1. NIO2架构 2. 操作路径 3. 属性读取与设定 4. 操作文档与记录 5. 读取/访问目录 6. 过滤/搜索文档 一.NIO /*** 原始的dump** @ ...

  6. Spring Security技术栈学习笔记(十四)使用Spring Social集成QQ登录验证方式

    上一篇文章<Spring Security技术栈开发企业级认证与授权(十三)Spring Social集成第三方登录验证开发流程介绍>主要是介绍了OAuth2协议的基本内容以及Spring ...

  7. 虚拟内存——Windows核心编程学习手札之十四

    虚拟内存 --Windows核心编程学习手札之十四 系统信息 有些操作系统的值是根据主机而定的,如页面大小.分配粒度大小等,这些值不用硬编码形式,进程初始化时应检索这些值以使用.函数GetSystem ...

  8. Windows保护模式学习笔记(十四)—— 阶段测试

    Windows保护模式学习笔记(十四)-- 阶段测试 题目一 解题步骤 题目二 解题步骤 题目一 描述:给定一个线性地址,和长度,读取内容 int ReadMemory(OUT BYTE* buffe ...

  9. OpenCV学习笔记(十四):重映射:remap( )

    OpenCV学习笔记(十四):重映射:remap( ) 图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后 ...

  10. QT学习笔记(十四):QLayout的属性介绍

    QT学习笔记(十四):QLayout的属性介绍 主要包括QBoxLayout.和QGridLayout以及QFormLayout等的参数类似. 我主要说明一下QGridLayout在QtDesigne ...

最新文章

  1. C#中数组、ArrayList和List三者的区别
  2. JS中toFixed()方法的问题及解决方案
  3. centos搭建ftp环境
  4. 时间戳服务器显示invalid,signtool签名时间戳失败的解决方法
  5. 前端安全究竟该怎么做?从一个安全漏洞说起......
  6. 详解MES系统在钢铁企业的应用分析
  7. 百度竞价常用术语总结
  8. 超简单,自己动手写一个二维码生成器
  9. QT软件开发:基于libVLC内核设计视频播放器
  10. UINO优锘:用悬疑舞台剧的方式打开3D开发工程师的一天
  11. 电脑更换硬盘 | 怎么迁移数据到新硬盘?
  12. python grad_torch.autograd.grad()函数用法示例
  13. 安卓逆向——某宝app爬虫抓取
  14. 1139C C. Edgy Trees
  15. r语言中如何进行两组独立样本秩和检验
  16. ROS2机器人笔记20-10-24
  17. 堪称神级的阿里巴巴“高并发”教程《基础+实战+源码+面试+架构》
  18. TensorFlow Serving的使用
  19. web端分享到微信的图标显示不出来,成回形针状
  20. 1,kivy和Beeware哪个好用,实战后的选择

热门文章

  1. RocketDock不能开机正常启动的解决方法
  2. 英雄连1V1战胜专家电脑!
  3. 一个小妙招能让你在服装上省下好多rmb
  4. Level/levelup-1-简介
  5. SpringDataJPA(二):SpringDataJPA的运行原理以及基本操作
  6. LLVM中的pass及其管理机制
  7. 列车停站方案_浅谈地铁列车停站方案.doc
  8. 莫队算法+带修莫队+回滚莫队
  9. 【车间调度】基于matlab改进的帝国企鹅算法求解车间调度问题【含Matlab源码 2041期】
  10. SMT32标准库函数——GPIO_ReadInputDataBit的使用(类比HAL库函数:HAL_GPIO_ReadPin函数)