Java中的集合框架(下)
- 学生选课——判断Set中课程是否存在
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Scanner;
- public class SetTest {
- public List<Course>coursesToSelect;
- public SetTest(){
- coursesToSelect=new ArrayList<Course>();
- }
- //用于往CourseToSelect中添加备选课程
- public void testAdd(){
- //创建一个课程对象,并通过调用add方法,添加到备选课程List中
- Course c=new Course("1","数据结构");
- coursesToSelect.add(c);
- Course temp=(Course) coursesToSelect.get(0);
- //System.out.println("添加了一门课程"+temp.id+":"+temp.name);
- Course c1=new Course("2","C语言");
- coursesToSelect.add(0, c1);
- Course temp1=(Course) coursesToSelect.get(0);
- //System.out.println("添加一门课程:"+temp1.id+":"+temp1.name);
- Course cq=new Course("1","数据结构");
- coursesToSelect.add(cq);
- Course temp0=(Course) coursesToSelect.get(2);
- //System.out.println("添加了一门课程"+temp0.id+":"+temp0.name);
- /*Course c2=new Course("2","Test1");
- CourseToSelect.add(4, c2);*/
- Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};
- coursesToSelect.addAll(Arrays.asList(course));
- Course temp2=(Course) coursesToSelect.get(2);
- Course temp3=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name);
- Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")};
- coursesToSelect.addAll(2, Arrays.asList(course2));
- Course temp4=(Course) coursesToSelect.get(2);
- Course temp5=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name);
- }
- /* * 取得List中的元素的方法
- **/
- /*public void testGet(){
- System.out.println("有如下课程待选:");
- int size=coursesToSelect.size();
- for (int i = 0; i < size; i++) {
- Course cr=(Course) coursesToSelect.get(i);
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- */
- /* * 通过迭代器来遍历List
- * */
- /*public void testIterator(){
- //通过集合iterator方法,取得迭代器实例
- Iterator it=coursesToSelect.iterator();
- System.out.println("有如下课程待选(通过迭代器访问):");
- while (it.hasNext()) {
- Course cr = (Course) it.next();
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }*/
- /*测试List的contains方法*/
- public void testListContains(){
- //取得被选课程序列的第0个元素
- Course course=coursesToSelect.get(0);
- //打印输出courseToSelect 是否包含course对象
- System.out.println("取得课程"+course.name);
- System.out.println("被选课程中是否包含课程"+course.name+","+coursesToSelect.contains(course));
- //创建一个新的课程对象,ID和名称,与course对象完全一样
- Course course2=new Course(course.id,course.name);
- System.out.println("新创建课程:"+course2.name);
- System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2));
- }
- /** 通过for each方法访问集合元素
- *
- * */
- /*public void testForEach(){
- System.out.println("有如下课程待选(通过 for each访问):");
- for (Object object : coursesToSelect) {
- Course cr=(Course) object;
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }*/
- /**
- * @param argsS
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- SetTest st=new SetTest();
- st.testAdd();
- st.testListContains();
- /*st.testForEach();
- //创建一个学生对象
- Student student=new Student("1","小明");
- System.out.println("欢迎学生"+student.name+"选课");
- //创建一个Scanner对象,用来接收从键盘输入的课程ID
- Scanner console=new Scanner(System.in);
- for (int i = 0; i < 3; i++) {
- System.out.println("请输入课程ID");
- String courseId=console.next();
- for (Course cr : st.coursesToSelect) {
- if (cr.id.equals(courseId)) {
- student.courses.add(cr);
- Set中添加某个对象,无论添加杜少次,
- * 最终只会保留一个该对象(的引用)
- * 并且,保留的是第一次添加的那一个
- //student.courses.add(null);
- //student.courses.add(cr);
- }
- }
- }
- st.testForEachForSet(student); */
- }
- /*public void testForEachForSet(Student student){
- //打印输出,学生所选的课程
- System.out.println("共选择了"+student.courses.size()+"门课程!");
- for(Course cr:student.courses){
- System.out.println("选择了课程"+cr.id+":"+"cr.name");
- }
- }*/
- }
第一种方法:
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Scanner;
- public class SetTest {
- public List<Course>coursesToSelect;
- public SetTest(){
- coursesToSelect=new ArrayList<Course>();
- }
- //用于往CourseToSelect中添加备选课程
- public void testAdd(){
- //创建一个课程对象,并通过调用add方法,添加到备选课程List中
- Course c=new Course("1","数据结构");
- coursesToSelect.add(c);
- Course temp=(Course) coursesToSelect.get(0);
- //System.out.println("添加了一门课程"+temp.id+":"+temp.name);
- Course c1=new Course("2","C语言");
- coursesToSelect.add(0, c1);
- Course temp1=(Course) coursesToSelect.get(0);
- //System.out.println("添加一门课程:"+temp1.id+":"+temp1.name);
- Course cq=new Course("1","数据结构");
- coursesToSelect.add(cq);
- Course temp0=(Course) coursesToSelect.get(2);
- //System.out.println("添加了一门课程"+temp0.id+":"+temp0.name);
- /*Course c2=new Course("2","Test1");
- CourseToSelect.add(4, c2);*/
- Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};
- coursesToSelect.addAll(Arrays.asList(course));
- Course temp2=(Course) coursesToSelect.get(2);
- Course temp3=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name);
- Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")};
- coursesToSelect.addAll(2, Arrays.asList(course2));
- Course temp4=(Course) coursesToSelect.get(2);
- Course temp5=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name);
- }
- /* * 取得List中的元素的方法
- **/
- /*public void testGet(){
- System.out.println("有如下课程待选:");
- int size=coursesToSelect.size();
- for (int i = 0; i < size; i++) {
- Course cr=(Course) coursesToSelect.get(i);
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- */
- /* * 通过迭代器来遍历List
- * */
- /*public void testIterator(){
- //通过集合iterator方法,取得迭代器实例
- Iterator it=coursesToSelect.iterator();
- System.out.println("有如下课程待选(通过迭代器访问):");
- while (it.hasNext()) {
- Course cr = (Course) it.next();
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }*/
- /*测试List的contains方法*/
- public void testListContains(){
- //取得被选课程序列的第0个元素
- Course course=coursesToSelect.get(0);
- //打印输出courseToSelect 是否包含course对象
- System.out.println("取得课程"+course.name);
- System.out.println("被选课程中是否包含课程"+course.name+","+coursesToSelect.contains(course));
- //创建一个新的课程对象,ID和名称,与course对象完全一样
- Course course2=new Course(course.id,course.name);
- System.out.println("新创建课程:"+course2.name);
- System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2));
- }
- /** 通过for each方法访问集合元素
- *
- * */
- /*public void testForEach(){
- System.out.println("有如下课程待选(通过 for each访问):");
- for (Object object : coursesToSelect) {
- Course cr=(Course) object;
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }*/
- /**
- * @param argsS
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- SetTest st=new SetTest();
- st.testAdd();
- st.testListContains();
- /*st.testForEach();
- //创建一个学生对象
- Student student=new Student("1","小明");
- System.out.println("欢迎学生"+student.name+"选课");
- //创建一个Scanner对象,用来接收从键盘输入的课程ID
- Scanner console=new Scanner(System.in);
- for (int i = 0; i < 3; i++) {
- System.out.println("请输入课程ID");
- String courseId=console.next();
- for (Course cr : st.coursesToSelect) {
- if (cr.id.equals(courseId)) {
- student.courses.add(cr);
- Set中添加某个对象,无论添加杜少次,
- * 最终只会保留一个该对象(的引用)
- * 并且,保留的是第一次添加的那一个
- //student.courses.add(null);
- //student.courses.add(cr);
- }
- }
- }
- st.testForEachForSet(student); */
- }
- /*public void testForEachForSet(Student student){
- //打印输出,学生所选的课程
- System.out.println("共选择了"+student.courses.size()+"门课程!");
- for(Course cr:student.courses){
- System.out.println("选择了课程"+cr.id+":"+"cr.name");
- }
- }*/
- }
第二种方法
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Scanner;
- public class SetTest {
- public List<Course>coursesToSelect;
- private Scanner console;
- public SetTest(){
- coursesToSelect=new ArrayList<Course>();
- console=new Scanner(System.in);
- }
- //用于往CourseToSelect中添加备选课程
- public void testAdd(){
- //创建一个课程对象,并通过调用add方法,添加到备选课程List中
- Course c=new Course("1","数据结构");
- coursesToSelect.add(c);
- Course temp=(Course) coursesToSelect.get(0);
- //System.out.println("添加了一门课程"+temp.id+":"+temp.name);
- Course c1=new Course("2","C语言");
- coursesToSelect.add(0, c1);
- Course temp1=(Course) coursesToSelect.get(0);
- //System.out.println("添加一门课程:"+temp1.id+":"+temp1.name);
- Course cq=new Course("1","数据结构");
- coursesToSelect.add(cq);
- Course temp0=(Course) coursesToSelect.get(2);
- //System.out.println("添加了一门课程"+temp0.id+":"+temp0.name);
- /*Course c2=new Course("2","Test1");
- CourseToSelect.add(4, c2);*/
- Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};
- coursesToSelect.addAll(Arrays.asList(course));
- Course temp2=(Course) coursesToSelect.get(2);
- Course temp3=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name);
- Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")};
- coursesToSelect.addAll(2, Arrays.asList(course2));
- Course temp4=(Course) coursesToSelect.get(2);
- Course temp5=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name);
- }
- /* * 取得List中的元素的方法
- **/
- /*public void testGet(){
- System.out.println("有如下课程待选:");
- int size=coursesToSelect.size();
- for (int i = 0; i < size; i++) {
- Course cr=(Course) coursesToSelect.get(i);
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- */
- /* * 通过迭代器来遍历List
- * */
- /*public void testIterator(){
- //通过集合iterator方法,取得迭代器实例
- Iterator it=coursesToSelect.iterator();
- System.out.println("有如下课程待选(通过迭代器访问):");
- while (it.hasNext()) {
- Course cr = (Course) it.next();
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }*/
- /*测试List的contains方法*/
- public void testListContains(){
- //取得被选课程序列的第0个元素
- Course course=coursesToSelect.get(0);
- //打印输出courseToSelect 是否包含course对象
- System.out.println("取得课程"+course.name);
- System.out.println("被选课程中是否包含课程"+course.name+","+coursesToSelect.contains(course));
- //提示输入课程名称
- System.out.println("请输入课程名称");
- String name=console.next();
- //创建一个新的课程对象,ID和名称,与course对象完全一样
- Course course2=new Course();//无参构造方法
- course2.name=name;
- System.out.println("新创建课程:"+course2.name);
- System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2));
- }
- /** 通过for each方法访问集合元素
- *
- * */
- /*public void testForEach(){
- System.out.println("有如下课程待选(通过 for each访问):");
- for (Object object : coursesToSelect) {
- Course cr=(Course) object;
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }*/
- /**
- * @param argsS
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- SetTest st=new SetTest();
- st.testAdd();
- st.testListContains();
- /*st.testForEach();
- //创建一个学生对象
- Student student=new Student("1","小明");
- System.out.println("欢迎学生"+student.name+"选课");
- //创建一个Scanner对象,用来接收从键盘输入的课程ID
- Scanner console=new Scanner(System.in);
- for (int i = 0; i < 3; i++) {
- System.out.println("请输入课程ID");
- String courseId=console.next();
- for (Course cr : st.coursesToSelect) {
- if (cr.id.equals(courseId)) {
- student.courses.add(cr);
- Set中添加某个对象,无论添加杜少次,
- * 最终只会保留一个该对象(的引用)
- * 并且,保留的是第一次添加的那一个
- //student.courses.add(null);
- //student.courses.add(cr);
- }
- }
- }
- st.testForEachForSet(student); */
- }
- /*public void testForEachForSet(Student student){
- //打印输出,学生所选的课程
- System.out.println("共选择了"+student.courses.size()+"门课程!");
- for(Course cr:student.courses){
- System.out.println("选择了课程"+cr.id+":"+"cr.name");
- }
- }*/
- }
测试
- package com.imooc.collection;
- /*
- * 课程类
- * */
- public class Course {
- public String id;
- public String name;
- public Course(String id, String name) {
- this.id = id;
- this.name = name;
- }
- public Course() {
- }
- //重写某个类的 equals方法来判断模板
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (!(obj instanceof Course)) {
- return false;
- }
- Course course = (Course) obj;
- if (this.name == null) {
- if (course.name == null) {
- return true;
- } else {
- return false;
- }
- } else {
- if (this.name.equals(course.name)) {
- return true;
- } else {
- return false;
- }
- }
- }
- }
运行结果为:
- 学生选课——判断Set中课程是否存在
图片(1)
图片(2)
- package com.imooc.collection;
- /*
- * 课程类
- * */
- public class Course {
- public String id;
- public String name;
- public Course(String id, String name) {
- this.id = id;
- this.name = name;
- }
- public Course() {
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof Course))
- return false;
- Course other = (Course) obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
- }
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Scanner;
- public class SetTest {
- public List<Course>coursesToSelect;
- private Scanner console;
- public Student student;
- public SetTest(){
- coursesToSelect=new ArrayList<Course>();
- console=new Scanner(System.in);
- }
- //用于往CourseToSelect中添加备选课程
- public void testAdd(){
- //创建一个课程对象,并通过调用add方法,添加到备选课程List中
- Course c=new Course("1","数据结构");
- coursesToSelect.add(c);
- Course temp=(Course) coursesToSelect.get(0);
- //System.out.println("添加了一门课程"+temp.id+":"+temp.name);
- Course c1=new Course("2","C语言");
- coursesToSelect.add(0, c1);
- Course temp1=(Course) coursesToSelect.get(0);
- //System.out.println("添加一门课程:"+temp1.id+":"+temp1.name);
- Course cq=new Course("1","数据结构");
- coursesToSelect.add(cq);
- Course temp0=(Course) coursesToSelect.get(2);
- //System.out.println("添加了一门课程"+temp0.id+":"+temp0.name);
- /*Course c2=new Course("2","Test1");
- CourseToSelect.add(4, c2);*/
- Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};
- coursesToSelect.addAll(Arrays.asList(course));
- Course temp2=(Course) coursesToSelect.get(2);
- Course temp3=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name);
- Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")};
- coursesToSelect.addAll(2, Arrays.asList(course2));
- Course temp4=(Course) coursesToSelect.get(2);
- Course temp5=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name);
- }
- /* * 取得List中的元素的方法
- **/
- /*public void testGet(){
- System.out.println("有如下课程待选:");
- int size=coursesToSelect.size();
- for (int i = 0; i < size; i++) {
- Course cr=(Course) coursesToSelect.get(i);
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- */
- /* * 通过迭代器来遍历List
- * */
- /*public void testIterator(){
- //通过集合iterator方法,取得迭代器实例
- Iterator it=coursesToSelect.iterator();
- System.out.println("有如下课程待选(通过迭代器访问):");
- while (it.hasNext()) {
- Course cr = (Course) it.next();
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- */
- /*测试List的contains方法*/
- /*public void testListContains(){
- //取得被选课程序列的第0个元素
- Course course=coursesToSelect.get(0);
- //打印输出courseToSelect 是否包含course对象
- System.out.println("取得课程"+course.name);
- System.out.println("被选课程中是否包含课程"+course.name+","+coursesToSelect.contains(course));
- //提示输入课程名称
- System.out.println("请输入课程名称");
- String name=console.next();
- //创建一个新的课程对象,ID和名称,与course对象完全一样
- Course course2=new Course();//无参构造方法
- course2.name=name;
- System.out.println("新创建课程:"+course2.name);
- System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2));
- }
- */
- /** 通过for each方法访问集合元素
- *
- * */
- public void testForEach(){
- System.out.println("有如下课程待选(通过 for each访问):");
- for (Object object : coursesToSelect) {
- Course cr=(Course) object;
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- //创建学生对象并选课
- public void createStudentAndSelectCours() {
- // 创建一个学生对象
- student = new Student("1", "小明");
- System.out.println("欢迎学生" + student.name + "选课");
- // 创建一个Scanner对象,用来接收从键盘输入的课程ID
- Scanner console = new Scanner(System.in);
- for (int i = 0; i < 3; i++) {
- System.out.println("请输入课程ID");
- String courseId = console.next();
- for (Course cr : coursesToSelect) {
- if (cr.id.equals(courseId)) {
- student.courses.add(cr);
- }
- }
- }
- }
- /*测试Set的contains方法*/
- public void testSetContains() {
- // 提示输入课程名称
- System.out.println("请输入课程名称");
- String name = console.next();
- // 创建一个新的课程对象,ID和名称,与course对象完全一样
- Course course2 = new Course();// 无参构造方法
- course2.name = name;
- System.out.println("新创建课程:" + course2.name);
- System.out.println("备选课程中是否包含课程:" + course2.name + ","
- + student.courses.contains(course2));
- }
- /**
- * @param argsS
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- SetTest st=new SetTest();
- st.testAdd();
- //st.testListContains();
- st.createStudentAndSelectCours();
- st.testSetContains();
- /*st.testGet();
- st.testIterator();*/
- st.testForEach();
- //创建一个学生对象
- /*Student student=new Student("1","小明");
- System.out.println("欢迎学生"+student.name+"选课");
- //创建一个Scanner对象,用来接收从键盘输入的课程ID
- Scanner console=new Scanner(System.in);
- for (int i = 0; i < 3; i++) {
- System.out.println("请输入课程ID");
- String courseId=console.next();
- for (Course cr : st.coursesToSelect) {
- if (cr.id.equals(courseId)) {
- student.courses.add(cr);
- Set中添加某个对象,无论添加杜少次,
- * 最终只会保留一个该对象(的引用)
- * 并且,保留的是第一次添加的那一个
- //student.courses.add(null);
- //student.courses.add(cr);
- }
- }
- }
- st.testForEachForSet(student); */
- }
- /*public void testForEachForSet(Student student){
- //打印输出,学生所选的课程
- System.out.println("共选择了"+student.courses.size()+"门课程!");
- for(Course cr:student.courses){
- System.out.println("选择了课程"+cr.id+":"+"cr.name");
- }
- }*/
- }
运行结果为:
- 学生选课——获取List中课程的位置
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Scanner;
- public class SetTest {
- public List<Course>coursesToSelect;
- private Scanner console;
- public Student student;
- public SetTest(){
- coursesToSelect=new ArrayList<Course>();
- console=new Scanner(System.in);
- }
- //用于往CourseToSelect中添加备选课程
- public void testAdd(){
- //创建一个课程对象,并通过调用add方法,添加到备选课程List中
- Course c=new Course("1","数据结构");
- coursesToSelect.add(c);
- Course temp=(Course) coursesToSelect.get(0);
- //System.out.println("添加了一门课程"+temp.id+":"+temp.name);
- Course c1=new Course("2","C语言");
- coursesToSelect.add(0, c1);
- Course temp1=(Course) coursesToSelect.get(0);
- //System.out.println("添加一门课程:"+temp1.id+":"+temp1.name);
- Course cq=new Course("1","数据结构");
- coursesToSelect.add(cq);
- Course temp0=(Course) coursesToSelect.get(2);
- //System.out.println("添加了一门课程"+temp0.id+":"+temp0.name);
- /*Course c2=new Course("2","Test1");
- CourseToSelect.add(4, c2);*/
- Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};
- coursesToSelect.addAll(Arrays.asList(course));
- Course temp2=(Course) coursesToSelect.get(2);
- Course temp3=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name);
- Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")};
- coursesToSelect.addAll(2, Arrays.asList(course2));
- Course temp4=(Course) coursesToSelect.get(2);
- Course temp5=(Course) coursesToSelect.get(3);
- //System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name);
- }
- /* * 取得List中的元素的方法
- **/
- /*public void testGet(){
- System.out.println("有如下课程待选:");
- int size=coursesToSelect.size();
- for (int i = 0; i < size; i++) {
- Course cr=(Course) coursesToSelect.get(i);
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- */
- /* * 通过迭代器来遍历List
- * */
- /*public void testIterator(){
- //通过集合iterator方法,取得迭代器实例
- Iterator it=coursesToSelect.iterator();
- System.out.println("有如下课程待选(通过迭代器访问):");
- while (it.hasNext()) {
- Course cr = (Course) it.next();
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- */
- /*测试List的contains方法*/
- public void testListContains(){
- //取得被选课程序列的第0个元素
- Course course=coursesToSelect.get(0);
- //打印输出courseToSelect 是否包含course对象
- System.out.println("取得课程"+course.name);
- System.out.println("被选课程中是否包含课程"+course.name+","+coursesToSelect.contains(course));
- //提示输入课程名称
- System.out.println("请输入课程名称");
- String name=console.next();
- //创建一个新的课程对象,ID和名称,与course对象完全一样
- Course course2=new Course();//无参构造方法
- course2.name=name;
- System.out.println("新创建课程:"+course2.name);
- System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2));
- //通过indexOf方法来取得某元素的索引位置
- if (coursesToSelect.contains(course2)) {
- System.out.println("课程:"+course2.name+"的索引位置为:"+coursesToSelect.indexOf(course2));
- }
- }
- /** 通过for each方法访问集合元素
- *
- * */
- public void testForEach(){
- System.out.println("有如下课程待选(通过 for each访问):");
- for (Object object : coursesToSelect) {
- Course cr=(Course) object;
- System.out.println("课程:"+cr.id+":"+cr.name);
- }
- }
- //创建学生对象并选课
- /*public void createStudentAndSelectCours() {
- // 创建一个学生对象
- student = new Student("1", "小明");
- System.out.println("欢迎学生" + student.name + "选课");
- // 创建一个Scanner对象,用来接收从键盘输入的课程ID
- Scanner console = new Scanner(System.in);
- for (int i = 0; i < 3; i++) {
- System.out.println("请输入课程ID");
- String courseId = console.next();
- for (Course cr : coursesToSelect) {
- if (cr.id.equals(courseId)) {
- student.courses.add(cr);
- }
- }
- }
- }*/
- /*测试Set的contains方法*/
- /*public void testSetContains() {
- // 提示输入课程名称
- System.out.println("请输入课程名称");
- String name = console.next();
- // 创建一个新的课程对象,ID和名称,与course对象完全一样
- Course course2 = new Course();// 无参构造方法
- course2.name = name;
- System.out.println("新创建课程:" + course2.name);
- System.out.println("备选课程中是否包含课程:" + course2.name + ","
- + student.courses.contains(course2));
- }
- */
- /**
- * @param argsS
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- SetTest st=new SetTest();
- st.testAdd();
- st.testListContains();
- //st.createStudentAndSelectCours();
- //st.testSetContains();
- /*st.testGet();
- st.testIterator();*/
- st.testForEach();
- //创建一个学生对象
- /*Student student=new Student("1","小明");
- System.out.println("欢迎学生"+student.name+"选课");
- //创建一个Scanner对象,用来接收从键盘输入的课程ID
- Scanner console=new Scanner(System.in);
- for (int i = 0; i < 3; i++) {
- System.out.println("请输入课程ID");
- String courseId=console.next();
- for (Course cr : st.coursesToSelect) {
- if (cr.id.equals(courseId)) {
- student.courses.add(cr);
- Set中添加某个对象,无论添加杜少次,
- * 最终只会保留一个该对象(的引用)
- * 并且,保留的是第一次添加的那一个
- //student.courses.add(null);
- //student.courses.add(cr);
- }
- }
- }
- st.testForEachForSet(student); */
- }
- /*public void testForEachForSet(Student student){
- //打印输出,学生所选的课程
- System.out.println("共选择了"+student.courses.size()+"门课程!");
- for(Course cr:student.courses){
- System.out.println("选择了课程"+cr.id+":"+"cr.name");
- }
- }*/
- }
运行结果为:
- 学生选课——判断Map中是否包含指定的key和value
- package com.imooc.collection;
- /*
- * 学生类
- * */
- import java.util.HashSet;
- import java.util.Set;
- public class Student {
- public String id;
- public String name;
- public Set <Course>courses;//泛型<Course>
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof Student))
- return false;
- Student other = (Student) obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
- public Student(String id,String name){
- this.id=id;
- this.name=name;
- this.courses=new HashSet<Course>();
- }
- }
- package com.imooc.collection;
- /*
- * 学生类
- * */
- import java.util.HashSet;
- import java.util.Set;
- public class Student {
- public String id;
- public String name;
- public Set <Course>courses;//泛型<Course>
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof Student))
- return false;
- Student other = (Student) obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
- public Student(String id,String name){
- this.id=id;
- this.name=name;
- this.courses=new HashSet<Course>();
- }
- }
- package com.imooc.collection;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Map.Entry;
- import java.util.Scanner;
- import java.util.Set;
- public class MapTest {
- //用来承装学生类型对象
- public Map<String,Student>students;
- /*在构造器中初始化students属性*/
- public MapTest(){
- this.students=new HashMap<String,Student>();
- }
- /**
- * 测试添加:输入学生ID,判断是否被占用
- * 若薇被占用,则输入姓名,创建新学生对象,并且
- * 添加到student中
- */
- public void testPut(){
- Scanner console=new Scanner(System.in);
- int i=0;
- while (i<3) {
- System.out.println("请输入学生ID");
- String ID=console.next();
- Student st=students.get(ID);
- if (st==null) {
- //提示输入学生姓名
- System.out.println("请输入学生姓名");
- String name=console.next();
- //添加新的学生对象
- Student newStudent=new Student(ID,name);
- students.put(ID,newStudent);
- System.out.println("成功添加学生:"+students.get(ID).name);
- i++;
- }else{
- System.out.println("该学生ID已被占用");
- continue;
- }
- }
- }
- /**
- * @param args测试Map的keySet方法
- */
- public void testKeySet(){
- //keySet方法,返回Map中的所有“键”的Set集合
- Set<String> keySet=students.keySet();
- //取得student的容量
- System.out.println("总共有:"+students.size()+"个学生");
- //遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
- for (String stuId : keySet) {
- Student st=students.get(stuId);
- if (st!=null) {
- System.out.println("学生"+st.name);
- }
- }
- }
- /**
- * 测试删除Map中的映射
- */
- public void testRemove(){
- //获取从键盘输入待删除学生ID字符串
- Scanner console=new Scanner(System.in);
- while (true) {
- //提示输入待删除的学生ID
- System.out.println("请输入要删除的学生ID");
- String ID=console.next();
- //判断该ID是否有对应的学生对象
- Student st=students.get(ID);
- if (st==null) {
- //提示输入的ID并不存在
- System.out.println("该ID不存在");
- continue;
- }
- students.remove(ID);
- System.out.println("成功删除学生"+st.name);
- break;
- }
- }
- /**
- * 通过entrySet方法来遍历Map
- */
- public void testEntrySet(){
- //通过entrySet方法,返回Map中的所有键值对
- Set<Entry<String,Student>> entrySet=students.entrySet();
- for (Entry<String, Student> entry : entrySet) {
- System.out.println("取得键"+entry.getKey());
- System.out.println("对应的职为:"+entry.getValue().name);
- }
- }
- /**
- * 利用put方法修改Map中的已有映射
- */
- public void testModify(){
- //提示输入要修改的学生ID
- System.out.println("请输入要修改的学生ID:");
- //创建Scanner对象,去获取从键盘上输入的学生ID字符串
- Scanner console=new Scanner(System.in);
- while(true){
- //取得从键盘上输入的学生ID
- String stuID=console.next();
- //从students中查找该学生ID对应的学生对象
- Student student=students.get(stuID);
- if (student==null) {
- System.out.println("该ID不存在,重新输入!");
- continue;
- }
- //提示当前对应的学生对象的姓名
- System.out.println("当前该学生ID,所对应的学生为:"+student.name);
- //提示输入新的学生姓名,来修改已有的映射
- System.out.println("请输入新的学生姓名");
- String name=console.next();
- Student newStudent=new Student(stuID,name);
- students.put(stuID,newStudent);
- System.out.println("修改成功!");
- break;
- }
- }
- /**
- * 测试Map中,是否包含某个key值或者某个value值
- * 用containsValue()方法,来判断是否包含某个value值
- */
- public void testContainsKeyOrValue(){
- //提示输入学生id
- System.out.println("请输入要查询的学生ID");
- Scanner console=new Scanner(System.in);
- String id=console.next();
- //在Map中,用containsKey()方法,来判断是否包含某个key值
- System.out.println("您输入的学生ID为:"+id+"在学生映射表中是否存在:"+students.containsKey(id));
- if (students.containsKey(id)) {
- System.out.println("对应的学生为:"+students.get(id).name);
- }
- //提示输入学生姓名
- System.out.println("请输入要查询的学生姓名:");
- String name=console.next();
- //用containsValue()方法,来判断是否包含某个Value值
- if (students.containsValue(new Student(null,name))) {
- System.out.println("在学生映射表中,确实包含学生:"+name);
- }else{
- System.out.println("在学生映射表中不存在该学生!");
- }
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- MapTest mt=new MapTest();
- mt.testPut();
- mt.testKeySet();
- /*mt.testRemove();
- mt.testEntrySet();*/
- /*mt.testModify();
- mt.testEntrySet();*/
- mt.testContainsKeyOrValue();
- }
- }
运行结果为:
- 请输入学生ID
- 1
- 请输入学生姓名
- 小明
- 成功添加学生:小明
- 请输入学生ID
- 2
- 请输入学生姓名
- 小红
- 成功添加学生:小红
- 请输入学生ID
- 3
- 请输入学生姓名
- 小兰
- 成功添加学生:小兰
- 总共有:3个学生
- 学生小兰
- 学生小红
- 学生小明
- 请输入要查询的学生ID
- 2
- 您输入的学生ID为:2在学生映射表中是否存在:true
- 对应的学生为:小红
- 请输入要查询的学生姓名:
- 小红
- 在学生映射表中,确实包含学生:小红
- 应用Collection.sort()实现List排序
Arrays类( java.util.Arrays)
Collections工具类(java.util.Collections)
是Java集合框架中,用来操作集合对象的工具类也是Java集合框架的成员
sort() (排序)方法
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Random;
- /**
- *将要完成:
- *1.通过Collections.sort()方法,对Integer泛型的List进行排序;
- *2.对String泛型的List进行排序
- *3.对其他类型泛型的List进行排序,以student为例。
- */
- public class CollectionsTest {
- /**
- *1. 通过Collections.sort()方法,对Integer泛型的List进行排序;
- * 创建一个Integer泛型的List,插入十个100以内的不重复随机整数,
- * 调用Collections.sort()方法对其进行排序
- */
- public void testSort1(){
- List<Integer> integerList=new ArrayList<Integer>();
- //插入十个100以内的不重复随机整数
- Random random=new Random();
- Integer k;
- for (int i = 0; i < 10; i++) {
- do{
- k=random.nextInt(100);
- }while(integerList.contains(k));
- integerList.add(k);
- System.out.println("成功添加整数:"+k);
- }
- System.out.println("----------排序之前-----------");
- for (Integer integer : integerList) {
- System.out.println("元素:"+integer);
- }
- Collections.sort(integerList);
- System.out.println("-----------排序之后-----------");
- for (Integer integer : integerList) {
- System.out.println("元素:"+integer);
- }
- }
- /*
- *2.对String泛型的List进行排序
- *创建String泛型的List,添加三个乱序的String元素
- *调用sort()方法,再次输出排序后的顺序
- */
- public void testSort2(){
- List<String> list=new ArrayList<String>();
- list.add("microsoft");
- list.add("google");
- list.add("lenovo");
- System.out.println("-----------排序前--------");
- for (String string : list) {
- System.out.println("元素:"+string);
- }
- Collections.sort(list);
- System.out.println("------排序后-------");
- for (String string : list) {
- System.out.println("元素:"+string);
- }
- }
- public static void main(String[] args) {
- CollectionsTest co=new CollectionsTest();
- //co.testSort1();
- co.testSort2();
- }
- }
运行结果:
- 学生选课——尝试对学生序列排序
- Comparable & Comparator简介
Comparable------默认比较规则
Comparator------临时比较规则
Comparable接口——可比较的
- 实现该接口表示:这个类的实例可以比较大小,可以进行自然排序
- 定义了默认的比较规则
- 其实现类需实现comparaTo()方法
- comparaTo()方法返回正数表示大,负数表示小,0表示相等
Comparator接口——比较工具接口
- 用于定义临时比较规则,而不是默认比较规则
- 其实现类需要实现Compare()方法
- Comparator和Comparable都是Java集合框架的成员
- 学生选课——实现学生序列排序
- package com.imooc.collection;
- /*
- * 学生类
- * */
- import java.util.HashSet;
- import java.util.Set;
- public class Student implements Comparable<Student>{
- public String id;
- public String name;
- public Set <Course>courses;//泛型<Course>
- @Override
- public int compareTo(Student o) {
- // TODO Auto-generated method stub
- return this.id.compareTo(o.id);
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof Student))
- return false;
- Student other = (Student) obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
- public Student(String id,String name){
- this.id=id;
- this.name=name;
- this.courses=new HashSet<Course>();
- }
- }
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Random;
- /**
- *将要完成:
- *1.通过Collections.sort()方法,对Integer泛型的List进行排序;
- *2.对String泛型的List进行排序
- *3.对其他类型泛型的List进行排序,以student为例。
- */
- public class CollectionsTest {
- /**
- *1. 通过Collections.sort()方法,对Integer泛型的List进行排序;
- * 创建一个Integer泛型的List,插入十个100以内的不重复随机整数,
- * 调用Collections.sort()方法对其进行排序
- */
- /*public void testSort1(){
- List<Integer> integerList=new ArrayList<Integer>();
- //插入十个100以内的不重复随机整数
- Random random=new Random();
- Integer k;
- for (int i = 0; i < 10; i++) {
- do{
- k=random.nextInt(100);
- }while(integerList.contains(k));
- integerList.add(k);
- System.out.println("成功添加整数:"+k);
- }
- System.out.println("----------排序之前-----------");
- for (Integer integer : integerList) {
- System.out.println("元素:"+integer);
- }
- Collections.sort(integerList);
- System.out.println("-----------排序之后-----------");
- for (Integer integer : integerList) {
- System.out.println("元素:"+integer);
- }
- }*/
- /*
- *2.对String泛型的List进行排序
- *创建String泛型的List,添加三个乱序的String元素
- *调用sort()方法,再次输出排序后的顺序
- */
- /*public void testSort2(){
- List<String> list=new ArrayList<String>();
- list.add("microsoft");
- list.add("google");
- list.add("lenovo");
- System.out.println("-----------排序前--------");
- for (String string : list) {
- System.out.println("元素:"+string);
- }
- Collections.sort(list);
- System.out.println("------排序后-------");
- for (String string : list) {
- System.out.println("元素:"+string);
- }
- }
- */
- /**
- * 3.对其他类型泛型的List进行排序,以student为例。
- *
- * */
- public void testSort3(){
- List<Student> studentList=new ArrayList<Student>();
- Random random=new Random();
- studentList.add(new Student(random.nextInt(1000)+"","Mike"));
- studentList.add(new Student(random.nextInt(1000)+"","Angela"));
- studentList.add(new Student(random.nextInt(1000)+"","Lucy"));
- studentList.add(new Student(1000+"","Beyonc"));
- System.out.println("----------排序前------------");
- for (Student student : studentList) {
- System.out.println("学生:"+student.id+":"+student.name);
- }
- Collections.sort(studentList);
- System.out.println();
- System.out.println("----------排序后-----------");
- for (Student student : studentList) {
- System.out.println("学生"+student.id+":"+student.name);
- }
- }
- public static void main(String[] args) {
- CollectionsTest co=new CollectionsTest();
- //co.testSort1();
- //co.testSort2();
- co.testSort3();
- }
- }
运行结果:
- package com.imooc.collection;
- import java.util.Comparator;
- public class StudentComparator implements Comparator<Student> {
- @Override
- public int compare(Student o1, Student o2) {
- // TODO Auto-generated method stub
- return o1.name.compareTo(o2.name);
- }
- }
- package com.imooc.collection;
- /*
- * 学生类
- * */
- import java.util.HashSet;
- import java.util.Set;
- public class Student implements Comparable<Student>{
- public String id;
- public String name;
- public Set <Course>courses;//泛型<Course>
- @Override
- public int compareTo(Student o) {
- // TODO Auto-generated method stub
- return this.id.compareTo(o.id);
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof Student))
- return false;
- Student other = (Student) obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
- public Student(String id,String name){
- this.id=id;
- this.name=name;
- this.courses=new HashSet<Course>();
- }
- }
- package com.imooc.collection;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Random;
- /**
- *将要完成:
- *1.通过Collections.sort()方法,对Integer泛型的List进行排序;
- *2.对String泛型的List进行排序
- *3.对其他类型泛型的List进行排序,以student为例。
- */
- public class CollectionsTest {
- /**
- *1. 通过Collections.sort()方法,对Integer泛型的List进行排序;
- * 创建一个Integer泛型的List,插入十个100以内的不重复随机整数,
- * 调用Collections.sort()方法对其进行排序
- */
- /*public void testSort1(){
- List<Integer> integerList=new ArrayList<Integer>();
- //插入十个100以内的不重复随机整数
- Random random=new Random();
- Integer k;
- for (int i = 0; i < 10; i++) {
- do{
- k=random.nextInt(100);
- }while(integerList.contains(k));
- integerList.add(k);
- System.out.println("成功添加整数:"+k);
- }
- System.out.println("----------排序之前-----------");
- for (Integer integer : integerList) {
- System.out.println("元素:"+integer);
- }
- Collections.sort(integerList);
- System.out.println("-----------排序之后-----------");
- for (Integer integer : integerList) {
- System.out.println("元素:"+integer);
- }
- }*/
- /*
- *2.对String泛型的List进行排序
- *创建String泛型的List,添加三个乱序的String元素
- *调用sort()方法,再次输出排序后的顺序
- */
- /*public void testSort2(){
- List<String> list=new ArrayList<String>();
- list.add("microsoft");
- list.add("google");
- list.add("lenovo");
- System.out.println("-----------排序前--------");
- for (String string : list) {
- System.out.println("元素:"+string);
- }
- Collections.sort(list);
- System.out.println("------排序后-------");
- for (String string : list) {
- System.out.println("元素:"+string);
- }
- }
- */
- /**
- * 3.对其他类型泛型的List进行排序,以student为例。
- *
- * */
- public void testSort3(){
- List<Student> studentList=new ArrayList<Student>();
- Random random=new Random();
- studentList.add(new Student(random.nextInt(1000)+"","Mike"));
- studentList.add(new Student(random.nextInt(1000)+"","Angela"));
- studentList.add(new Student(random.nextInt(1000)+"","Lucy"));
- studentList.add(new Student(1000+"","Beyonc"));
- System.out.println("----------排序前------------");
- for (Student student : studentList) {
- System.out.println("学生:"+student.id+":"+student.name);
- }
- Collections.sort(studentList);
- System.out.println();
- System.out.println("----------排序后-----------");
- for (Student student : studentList) {
- System.out.println("学生"+student.id+":"+student.name);
- }
- Collections.sort(studentList,new StudentComparator());
- System.out.println("---------按照姓名排序后---------");
- for (Student student : studentList) {
- System.out.println("学生"+student.id+":"+student.name);
- }
- }
- public static void main(String[] args) {
- CollectionsTest co=new CollectionsTest();
- //co.testSort1();
- //co.testSort2();
- co.testSort3();
- }
- }
运行结果为:
Java中的集合框架(下)的更多相关文章
- 菜鸟日记之 java中的集合框架
java中的集合框架图 如图所示:java中的集合分为两种Collection和Map两种接口 可分为Collection是单列集合和Map的双列集合 Collection单列集合:继承了Iterat ...
- Java中的集合框架-Collection(二)
上一篇<Java中的集合框架-Collection(一)>把Java集合框架中的Collection与List及其常用实现类的功能大致记录了一下,本篇接着记录Collection的另一个子 ...
- Java中的集合框架(上)
Java中的集合框架概述 集合的概念: Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象. 集合的作用: 1.在类的内部,对数据进行组织: 2.简单的快速的搜索大数据量的 ...
- Java中的集合框架-Collections和Arrays
上一篇<Java中的集合框架-Map>把集合框架中的键值对容器Map中常用的知识记录了一下,本节记录一下集合框架的两个工具类Collections和Arrays 一,Collections ...
- Java中的集合框架-Map
前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从 ...
- Java中的集合框架
概念与作用 集合概念 现实生活中:很多事物凑在一起 数学中的集合:具有共同属性的事物的总体 java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象 在编程时,常常需要集中存放多 ...
- Java中的集合框架-Collection(一)
一,Collection接口 在日常的开发工作中,我们经常使用数组,但是数组是有很多的局限性的,比如:数组大小固定后不可修改,只能存储基本类型的值等等. 基于数组的这些局限性,Java框架就产生了用于 ...
- JAVA 中的集合框架
java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 一.集合与数组 数组:(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知 ...
- Java学习--java中的集合框架、Collection接口、list接口
与数组相比:1.数组的长度固定,而集合的长度可变2.数组只能通过下表访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象 java集合框架:collection(list序列,queue ...
随机推荐
- javascript 面向对象设计之 Function 普通类
var test = "Class01"; function Class01(privateValue, publicValue) { var _this = this; if ( ...
- 关于在Windows下Composer下载安装Yii2.0
先是composer的安装,主要有两个方式,一个直接下载安装包安装,Composer-steup.exe文件,第二种直接下载composer.phar文件,用php去运行这个文件可以一样起到作用,之后 ...
- 晒下我在2017年所阅读的JavaScript书单
前言 学习是一个持续不断的过程,在互联网技术里畅游的程序猿们,对学习的渴望更是难以穷尽.2017即将逝去,2018已经漏出曙光,回顾这一年,在学习的路上收获还是颇丰的,下面就晒一晒2017年我所学习的 ...
- python每天进步一点点
1. apply, 可以调用函数和参数,如apply(Fun,(xxx,xxx)) 2. Format, 很好处理字符串的对齐命名,其他进制,打印等. 3. input(),接受输入 4. str() ...
- DataBase MongoDB集群方案介绍
MongoDB集群方案介绍 一.什么是mongodb集群? 是指由多台mongodb服务器组成的服务器集群,称之为mongodb集群. 二.mongodb集群搭建的方式: 1.Replica Set ...
- Macaca环境搭建踩坑总结
1.使用命令 npm i macaca-android -g 安装一直不成功,使用Macaca doctor 一直没有显示出android C:\Users\ABC>npm i macaca- ...
- 程序猿的日常——HashMap的相关知识
背景知识 哈希冲突 哈希是指通过某种方法把数据转变成特定的数值,数值根据mod对应到不同的单元上.比如在Java中,字符串就是通过每个字符的编码来计算.数字是本身对应的值等等,不过就算是再好的哈希方法 ...
- Life in Changsha 第二次scrum冲刺
第二次冲刺 第二次冲刺任务 设计留言板功能. 用户故事 用户打开“生活在长大”的界面 程序首页展示校园服务,论坛等相关信息 用户选择留言板 程序界面跳转 用户查看留言,并可以输入留言内容 提交后留 ...
- TreeMap 源码分析
简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现.TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey.get.p ...
- tomcat配置https协议
tomcat配置https协议 1.找到本地jdk底下的bin目录,bin目录底下存在文件keytool.exe(在bin目录下空白处,按住shift右击,打开命令窗口,如下图) 2.在cmd的命令窗 ...