JAVA程序中如何输出一个字符串中相同字符的个数,代码如下:
import javautilHashMap;import javautilMap;
public class TestC {
public static void main(String[] args){
//要统计字符个数的字符串
String str="abcdeab";
//每个字符和个数都存放在集合中,
Map<Character,Integer> map=new HashMap<Character,Integer>();
//遍历字符串
for(int x=0;x<strlength();x++){
//获取字符
char c=strcharAt(x);
//判断该字符是否存在集合
if(mapget(c)==null){
//不存在就存进去
mapput(c, 1);
}else{
//存在了就加一
int count= mapget(c)+1;
mapput(c, count);
}
}
//输出每个字符的出现次数
Systemoutprintln(map);
}
}
输出结果:
{d=1, e=1, b=2, c=1, a=2}
1 一个Java应用程序必须且只有一个类含有 main_____ 方法。
2 构造方法 是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并不返回任何数据类型。
3 子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量。
4 在Java语言中多态性体现在由方法重载实现的静态多态性和 方法重定义 实现的动态多态性。
5 final 类不能被继承,即不能有子类。
6 局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字 this。
7 可以使用String类的 endsWith 方法判断一个字符串的后缀是否是字符串s。
8 对于一个已经不被任何引用变量引用的对象,当垃圾回收器准备回收该对象所占用的内存时,将自动调用该对象的 finalize() 方法。
9 throws 方法是一种非常有用的辅助性程序设计方法。采用这种方法可以使得在程序设计时将程序的正常流程与错误处理分开,有利于代码的编写和维护。
10read 方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0~255 之间的一个整数),如果到达源的末尾,该方法返回 -1 。
11 是一种由多个节点组成的数据结构,并且每个节点包含有数据以及指向下一个节点的引用。
12在集合框架中, 数组 的特点是长度固定,可以用下标索引,并且所有的元素的类型都是一致的;
map 的访问时间接近稳定,它是一种键值对映射的数据结构。
13典型的JDBC程序按 DBECFA 顺序编写。
A释放资源
B获得与数据库的连接
C执行SQL命令
D注册JDBC Driver
E创建不同类型的Statement
F如果有结果集,处理结果集
14在 *** 作系统把程序所写到输出流上的那些字节保存到磁盘上之前,内容有时被存放在内存缓冲区中,
通过调用 close 方法,可以保证 *** 作系统把流缓冲区的内容写到它的目的地。
15从ResultSet结果集中取数据之前必须调用它的 方法,否则会有异常发生。
16如果在子类中想使用被子类隐藏的父类的成员变量或方法可以使用关键字 。
17面向对象编程序主要有 封装 、继承性、 多态性 的特点。
18在循环体中,如果想结束本次循环可以用 break 语句。
java集合的主要分为三种类型:
Set(集)
List(列表)
Map(映射)
要深入理解集合首先要了解下我们熟悉的数组:
数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和 *** 作数目不固定的一组数据。 所有的JAVA集合都位于 javautil包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。
简单说下集合和数组的区别:(参考文章:《Thinking In Algorithm》03数据结构之数组)
Java所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。
1、
效率高,但容量固定且无法动态改变。
array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。
2、Java中有一个Arrays类,专门用来 *** 作array。
arrays中拥有一组static函数,
equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
Systemarraycopy():array的复制。
若撰写程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。所以就要用到集合。
那我们开始讨论java中的集合。
集合分类:
Collection:List、Set
Map:HashMap、HashTable
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
mapput("key1", "value1");
mapput("key2", "value2");
mapput("key3", "value3");
Set<String> keySet = mapkeySet();
int i = mapsize()-1;
Map<Integer, String> mapKey = new HashMap<Integer, String>();
Map<Integer, String> mapValue = new HashMap<Integer, String>();
for(javautilMapEntry<String, String> entry : mapentrySet()) {
//将原来MAP的VALUE放入新的MAP的VALUE里面
mapKeyput(i, entrygetValue());
//将原来MAP的KEY放入新的MAP的VALUE 里面
mapValueput(i, entrygetKey());
i--;
}
//打印KEY值
Systemoutprintln(mapKeyget(2));
//打印VALUE值
Systemoutprintln(mapValueget(0));
}
扩展资料:
java键值对的使用
Map集合没有继承Collection接口,但是其提供了key到value的映射。每一个key不能有相同,每个key只能映射一个value值。
下面通过一个程序来说明键值对的使用,下面是一个基本的键值对应用程序:
package Test;
import javautilCollection;
import javautilHashMap;
import javautilIterator;
import javautilMap;
import javautilSet;
public class KeyValue {
public static void main(String[] args) {
Map <String,String> map=new HashMap<>();
mapput("01", "张三");
mapput("02", "王五");
Set<String> set=mapkeySet();
Iterator <String> it=setiterator();
Systemoutprintln("key中集合元素:");
while(ithasNext()){
Systemoutprintln(itnext());
}
Collection <String> coll=mapvalues();
it=colliterator();
Systemoutprintln("value中集合元素:");
while(ithasNext()){
Systemoutprintln(itnext());
}
}
}
输出结果如图所示:
可以的。
但内部接口只能定义在外部类或接口下,不能定义在内部抽象类或内部接口下。
内部抽象类的多重实现,即在内部抽象类或内部接口下再定义二级内部抽象类,甚至多级。
举例:
package combysfisher2034;
public class SortUtil {
public interface Sort {
public void sort(int[] arr);
}
public static void swap(int[] data, int i, int j) {
int c = 0;
c = data[i];
data[i] = data[j];
data[j] = c;
}
}
以上就是关于JAVA程序中如何输出一个字符串中相同字符的个数全部的内容,包括:JAVA程序中如何输出一个字符串中相同字符的个数、每个java应用程序要有且只有一个什么方法,它是程序运行的开始点、JAVA里面set,map,list的区别是什么(尽量详细)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)