首页 > 编程语言 >Java_Base7之接口和抽象类、集合类ArrayList、HashSet、HashMap

Java_Base7之接口和抽象类、集合类ArrayList、HashSet、HashMap

时间:2023-06-17 22:01:10浏览次数:39  
标签:Java HashMap HashSet abstract 接口 void 集合 public

一、接口和抽象类(了解)
接口:规则,规范行为。只能有抽象方法,一个类可以同时实现多个接口,必须重写所有抽象方法。
	接口与接口是继承,接口与类是实现。
接口是对继承的补充。
	interface implements
定义一个接口
public interface Inter {
	//默认修饰符 public abstract 可以省略
	public abstract void show();
}
实现一个接口
public Student implements Inter {
	public abstract void show() {
		System.out.println("show...");
	}
}

案例:
父接口中的抽象方法就是规则,为什么呢?因为规范返回值、参数类型、方法名
public interface Inter {
	//抽象方法没有方法体。
	public abstract int show();			//规则1
	
	void print(int a);					//规则2
}
 
public class Imp implements Inter {

	public int show() {			//遵循了规则1	重写
		//...任意代码	
	}
	
	public void print(int a) {	//遵循了规则2	重写
		//...任意代码	
	}
}
	
抽象类:不能创建对象的类(不能new),与普通类的唯一区别是可以用抽象方法。子类可以继承抽象类,但必须重写抽象方法。
	abstract
定义一个抽象类。	
public abstract class BaseCase {

	public BaseCase() {}
	
	public abstract void info();
	
	public void getData() {
		System.out.println("getData...");
	}
}

	/*
	 * JAVA提供了八大基本数据类型对应的引用数据类型。
	 * boolean			Boolean
	 * byte				Byte
	 * char				Character
	 * short			Short
	 * int				Integer
	 * long				Long
	 * float			Float
	 * double			Double
	 */
	//静态方法,不需要创建对象,直接类名.调用
	int i = Integer.parseInt("123");
	System.out.println(i* 10);
二、ArrayList
继承关系
	Iterable
		- Collection
			- List 有序,可重复
				- ArrayList
			- Set  无序,不可重复
				- HashSet
本质:数组
特点:长度可变数组,提供很多方便的方法。有序,可重复。
ArrayList<T> list = new ArrayList<T>();
泛型:规定集合存储的数据类型。
常用API:
	添加数据:add(…)
	取出数据:get(…)
	获取list集合的大小:size()
	其他API:
	移除数据:remove(…)
	isEmpty(…),判空函数
	contains(…),判断是否包含某数据
	set(…),修改某个位置

遍历集合:
	普通for
	增强for
	迭代器:
		iterator():获取迭代器
		hasNext():迭代器通过指针下移判断是否有数据
		next():取数据		
				
toString():
	toString()是来自Object类中的方法,当我们使用System.out.println(s)输出时自动会调用toString();
	重写toString()就是为了方便打印。
三、HashSet
特点:无序,不可重复。
HashSet<T> set = new HashSet<T>(); 
常用API
	添加数据:add(…)
	size() , 获取集合的大小
	其他API
	size() , 获取集合的大小
	删除数据:remove(…)
	contains(),判断是否包含某数据
	isEmpty() , 判断集合是否为空
	clear(), 将集合里的所有数据清空
	toArray(),将集合转化成为对应数据类型的数组
遍历集合:
	增强for
	迭代器
四、HashMap
特点:键值对。一个键对应一个值,键不能重复。存储重复的键后会覆盖之前的值。
HashMap<K,V> map = new HashMap<K,V>();

Map
	- HashMap

常用API
	添加数据:put(…) 
	取值:get(…)
	获取所有的键:keySet(…)
	其他API:size(),containsKey(…),containsValue(…)
	移除:remove(…)
	获取或有的值:values(…)

遍历集合:
	增强for
	迭代器
	Entry:
		Set<Map.Entry<K,V>> entrySet = map.entrySet();
		for(Entry e : entrySet) {
			System.out.println(e.getKey() + "===" + e.getValue());
		}

标签:Java,HashMap,HashSet,abstract,接口,void,集合,public
From: https://www.cnblogs.com/sill-lyb/p/15431565.html

相关文章

  • Java_Base4之多态、api使用、字符串方法学习
    一、多态Polymorphism少写代码概念:用父类的类型来接收子类的对象先决条件: 继承/接口实现 父类类型接收子类对象 //实现扩展性优点: 扩展性强,解决了代码复用,降低类型耦合度 可以少定义变量,少些重复代码。 案例:一个方法接受不同的子类类型。缺点: 不能使用子类特有方法 ......
  • Java-抽象与接口
    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。......
  • 代码随想录Day24|回溯算法+JAVA大作战
     今日任务39. 组合总和40.组合总和II131.分割回文串 93.复原IP地址  78.子集   90.子集II   39.组合总和classSolution{List<List<Integer>>ans=newArrayList<>();LinkedList<Integer>now_ans=newLinkedList<>();publicLi......
  • Java对象拷贝MapStruct
    介绍编译期即可生成对象复制代码。简单理解,功能定位org.springframework.beans.BeanUtils。官网,GitHub-MapStruct。入门maven项目引入依赖:mapstruct:包含必要注解,如@Mappingmapstruct-processor:注解处理器,根据注解自动生成mapper实现<dependency><groupId>org.mapstruct</group......
  • Java基本概念
    1.Java发展历史由高斯林创建1995年由甲骨文公司收购并发出第一版本,目前使用最多是Java8及Java11原因是这两个版本都是长期支持维护的,企业用的也比较多。2.Java的一些特点跨平台性:主要是因为每个平台都装有JVMJava是一门解释语言,即由解释器解释完后,再通过JVM运行......
  • Java彩虹渐变算法
    彩虹渐变算法前言​ 最近有一个需求是需要一直去改变字体的颜色,然后我就想到了使用彩虹颜色作为字体颜色,使颜色按照彩虹颜色的顺序进行变化。​ 然后查了一下彩虹的颜色可以分为6种(对,不是七种),用RGB来表示分别是#FF00FF,#FFFF00,#00FF00,#00FFFF,#0000FF,#FF00FF,因此我们只需要......
  • java中 如何在文本中筛选出汉字
    在Java中,使用正则表达式来筛选出文本中的汉字。下面是一种方法:importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassMain{publicstaticvoidmain(String[]args){Stringtext="Hello你好!Thisisatest文本。";//使......
  • java中 如何在文本中筛选出汉字
    在Java中,使用正则表达式来筛选出文本中的汉字。下面是一种方法:importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassMain{publicstaticvoidmain(String[]args){Stringtext="Hello你好!Thisisatest文本。";//使......
  • java使double保留两位小数的多方法 java保留两位小数
    代码如下:mportjava.text.DecimalFormat;  DecimalFormat   df  =newDecimalFormat("######0.00");  doubled1=3.23456 doubled2=0.0;doubled3=2.0;df.format(d1);df.format(d2);df.format(d3);3个结果分别为:复制代码代码如下:3.230.002.00java保留两位小......
  • Java官方笔记11包
    PackagesDefinition:Apackageisagroupingofrelatedtypesprovidingaccessprotectionandnamespacemanagement.Notethattypesreferstoclasses,interfaces,enumerations,andannotationtypes.Enumerationsandannotationtypesarespecialkindsof......