如何获取Java中不同单词的数量?
我正在使用音乐自动点唱机程序。我有两个主要的类:Song.java和Playlist.java。Song.java如下所示:如何获取Java中不同单词的数量?,java,string,unit-testing,arraylist,Java,String,Unit Testing,Arraylist,我正在使用音乐自动点唱机程序。我有两个主要的类:Song.java和Playlist.java。Song.java如下所示: public class Song { String name; String title; double length; public Song(String name,String title,double length) { this.name=name; this.tit
public class Song {
String name;
String title;
double length;
public Song(String name,String title,double length)
{
this.name=name;
this.title=title;
this.length=length;
}
public void setArtist(String songname)
{
name=songname;
}
public String getArtist()
{
return name;
}
public void setTitle(String songtitle)
{
title=songtitle;
}
public String getTitle()
{
return title;
}
public void setLength(double songlength)
{
length=songlength;
}
public double getLength()
{
return length;
}
public String toString()
{
return "Title: " + getTitle() + ", Artist: " + getArtist()
+ ", Track Length: " + getLength();
}
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
@SuppressWarnings("serial")
public class Playlist<E extends Song> extends java.util.Vector<E> {
java.util.Iterator<E> itr = this.iterator();
String name;
ArrayList<Song> songList;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Song> getSongList() {
return songList;
}
public void setSongList(ArrayList<Song> songList) {
this.songList = songList;
}
public void PlayList() {
name = "Untitled";
songList = new ArrayList<Song>();
}
public Playlist(String name) {
this.name = name;
songList = new ArrayList<Song>();
}
public Object getTitle()
{
return "Playlist Title";
}
public boolean addtoPlist(Song song1) {
songList.add(song1);
return true;
}
public Song getSong(int index) {
songList.trimToSize();
if(songList.size() >= index){
return songList.get(index);
}
else
return null;
}
public boolean hasTitle(String string) {
if( string.equals("Playlist Title"))
return true;
return false;
}
public boolean hasArtist(String string) {
if(string.equalsIgnoreCase("artist1"))
return true;
return false;
}
public Object numberOfSongs() {
// TODO Auto-generated method stub
return songList.size();
}
public Object numberOfArtists()
{
return 0;
}
public Object numberOfTitles()
{
return null;
}
public double playTime() {
return 0;
}
public Object findSong(Song song1) {
if(song1.equals("song1")&&song1.equals("song2")&&
song1.equals("song3")&&song1.equals("song4"))
itr.next();
return true;
}
public void sortByArtist()
{
}
public boolean removeFromPlist(Song str) {
songList.remove(str);
return true;
}
}
和Playlist.java如下所示:
public class Song {
String name;
String title;
double length;
public Song(String name,String title,double length)
{
this.name=name;
this.title=title;
this.length=length;
}
public void setArtist(String songname)
{
name=songname;
}
public String getArtist()
{
return name;
}
public void setTitle(String songtitle)
{
title=songtitle;
}
public String getTitle()
{
return title;
}
public void setLength(double songlength)
{
length=songlength;
}
public double getLength()
{
return length;
}
public String toString()
{
return "Title: " + getTitle() + ", Artist: " + getArtist()
+ ", Track Length: " + getLength();
}
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
@SuppressWarnings("serial")
public class Playlist<E extends Song> extends java.util.Vector<E> {
java.util.Iterator<E> itr = this.iterator();
String name;
ArrayList<Song> songList;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Song> getSongList() {
return songList;
}
public void setSongList(ArrayList<Song> songList) {
this.songList = songList;
}
public void PlayList() {
name = "Untitled";
songList = new ArrayList<Song>();
}
public Playlist(String name) {
this.name = name;
songList = new ArrayList<Song>();
}
public Object getTitle()
{
return "Playlist Title";
}
public boolean addtoPlist(Song song1) {
songList.add(song1);
return true;
}
public Song getSong(int index) {
songList.trimToSize();
if(songList.size() >= index){
return songList.get(index);
}
else
return null;
}
public boolean hasTitle(String string) {
if( string.equals("Playlist Title"))
return true;
return false;
}
public boolean hasArtist(String string) {
if(string.equalsIgnoreCase("artist1"))
return true;
return false;
}
public Object numberOfSongs() {
// TODO Auto-generated method stub
return songList.size();
}
public Object numberOfArtists()
{
return 0;
}
public Object numberOfTitles()
{
return null;
}
public double playTime() {
return 0;
}
public Object findSong(Song song1) {
if(song1.equals("song1")&&song1.equals("song2")&&
song1.equals("song3")&&song1.equals("song4"))
itr.next();
return true;
}
public void sortByArtist()
{
}
public boolean removeFromPlist(Song str) {
songList.remove(str);
return true;
}
}
import java.util.ArrayList;
导入java.util.HashSet;
导入java.util.Set;
@抑制警告(“串行”)
公共类播放列表扩展了java.util.Vector{
java.util.Iterator itr=this.Iterator();
字符串名;
ArrayList歌曲列表;
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共阵列列表getSongList(){
返回歌曲列表;
}
公共歌曲列表(ArrayList歌曲列表){
this.songList=歌曲列表;
}
公共无效播放列表(){
name=“无标题”;
songList=newarraylist();
}
公共播放列表(字符串名称){
this.name=名称;
songList=newarraylist();
}
公共对象getTitle()
{
返回“播放列表标题”;
}
公共布尔addtoPlist(Song song1){
歌曲列表。添加(歌曲1);
返回true;
}
公共歌曲getSong(整数索引){
songList.trimToSize();
if(songList.size()>=索引){
返回歌曲列表。获取(索引);
}
其他的
返回null;
}
公共布尔值(字符串){
if(string.equals(“播放列表标题”))
返回true;
返回false;
}
公共布尔HasArtister(字符串){
if(string.equalsIgnoreCase(“artist1”))
返回true;
返回false;
}
公共对象numberOfSongs(){
//TODO自动生成的方法存根
返回songList.size();
}
公共对象numberOfArtists()
{
返回0;
}
公共对象numberOfTitles()
{
返回null;
}
公共双人游戏时间(){
返回0;
}
公共对象findSong(Song song1){
if(song1.equals(“song1”)和&song1.equals(“song2”)&&
歌曲1.equals(“歌曲3”)&歌曲1.equals(“歌曲4”))
itr.next();
返回true;
}
公共无效排序员()
{
}
公共布尔值removeFromPlist(Song str){
歌曲列表。删除(str);
返回true;
}
}
这是playletest.java,用于单元测试:
import junit.framework.TestCase;
import java.util.Vector;
public class PlaylistTest extends TestCase {
private Playlist<Song> aPlaylist;
private Song song1, song2, song3, song4, duplicate_song, nullSong;
public void setUp() {
aPlaylist= new Playlist<Song>("Playlist Title");
song1 = new Song("Artist1", "AA", 6.00);
song2 = new Song("Artist1", "BB", 3.50);
song3 = new Song("Artist2", "BB", 3.00);
song4 = new Song("Artist2", "CC", 5.50);
duplicate_song = new Song("ARTIST1", "TITLE1", 5.00); // Same song with song 1
nullSong = null;
}
protected void tearDown() throws Exception
{
super.tearDown();
}
protected void fillPlaylist() {
aPlaylist.addtoPlist(song1);
aPlaylist.addtoPlist(song2);
aPlaylist.addtoPlist(song3);
aPlaylist.addtoPlist(song4);
}
public void test_Constructor() {
assertNotNull(aPlaylist);
assertTrue(aPlaylist instanceof Vector);
assertTrue(aPlaylist.isEmpty());
}
public void test_getTitle() {
assertTrue(aPlaylist.getTitle().equals("Playlist Title"));
}
public void test_addtoPList() {
assertTrue(aPlaylist.isEmpty());
assertTrue(aPlaylist.addtoPlist(song1));
assertEquals(1, aPlaylist.size());
assertTrue(aPlaylist.addtoPlist(song2));
assertTrue(aPlaylist.addtoPlist(song3));
assertEquals(3, aPlaylist.size());
assertFalse(aPlaylist.addtoPlist(nullSong));
assertEquals(3, aPlaylist.size());
assertFalse(aPlaylist.addtoPlist(duplicate_song));
assertEquals(3, aPlaylist.size());
}
public void test_removeSong() {
fillPlaylist();
int size = aPlaylist.size();
assertFalse(aPlaylist.removeFromPlist(nullSong));
assertEquals(size, aPlaylist.size());
assertFalse(aPlaylist.removeFromPlist(new Song("Artist1", "Title1", 1.00)));
assertEquals(size, aPlaylist.size());
assertTrue(aPlaylist.contains(duplicate_song));
assertTrue(aPlaylist.removeFromPlist(duplicate_song)); // Removing "duplicate_song" is removing "song1"
assertEquals(size - 1, aPlaylist.size());
}
public void test_getSong() {
fillPlaylist();
assertTrue(aPlaylist.getSong(0) instanceof Song);
assertEquals(song1, aPlaylist.getSong(0));
assertEquals(duplicate_song, aPlaylist.getSong(0));
assertEquals(song2, aPlaylist.getSong(1));
assertEquals(song3, aPlaylist.getSong(2));
assertEquals(song4, aPlaylist.getSong(3));
}
public void test_hasTitle() {
fillPlaylist();
assertTrue(aPlaylist.hasTitle("Playlist Title"));
assertFalse(aPlaylist.hasTitle("wrong title"));
}
public void test_hasArtist() {
fillPlaylist();
assertTrue(aPlaylist.hasArtist("artist1"));
assertFalse(aPlaylist.hasArtist("wrong artist"));
}
public void test_numberOfSongs() {
fillPlaylist();
assertEquals(4, aPlaylist.numberOfSongs());
}
public void test_numberOfArtists() {
fillPlaylist();
assertEquals(2, aPlaylist.numberOfArtists());
}
public void test_numberOfTitles() {
fillPlaylist();
assertEquals(3, aPlaylist.numberOfTitles());
}
public void test_playTime() {
fillPlaylist();
assertTrue(aPlaylist.playTime() == 19.00);
}
public void test_findElement() {
fillPlaylist();
assertEquals(0, aPlaylist.findSong(song1));
assertEquals(1, aPlaylist.findSong(song2));
assertEquals(2, aPlaylist.findSong(song3));
assertEquals(3, aPlaylist.findSong(song4));
//assertEquals(-1, aPlaylist.findSong(new Song("Not", "There", 0)));
}
public void test_sortByArtist() {
// TODO: Assignment 6 -- create new test case here: sort by artist
}
public void test_sortByTitle() {
}
}
导入junit.framework.TestCase;
导入java.util.Vector;
公共类测试扩展了TestCase{
私人播放列表;
私人歌曲歌曲1、歌曲2、歌曲3、歌曲4、重复歌曲、无歌曲;
公共作废设置(){
aPlaylist=新播放列表(“播放列表标题”);
歌曲1=新歌(“艺人1”,“AA”,6.00);
歌曲2=新歌(“艺人1”,“BB”,3.50);
歌曲3=新歌(“艺人2”,“BB”,3.00);
歌曲4=新歌(“艺人2”,“抄送”,5.50);
复制歌曲=新歌(“艺人1”,“标题1”,5.00);//与歌曲1相同的歌曲
nullSong=null;
}
受保护的void tearDown()引发异常
{
super.tearDown();
}
受保护的无效播放列表(){
aPlaylist.addtoPlist(歌曲1);
aPlaylist.addtoPlist(歌曲2);
aPlaylist.addtoPlist(歌曲3);
aPlaylist.addtoPlist(歌曲4);
}
公共无效测试_构造函数(){
assertNotNull(应用程序列表);
assertTrue(向量的aPlaylist实例);
assertTrue(aPlaylist.isEmpty());
}
公共无效测试_getTitle(){
assertTrue(aPlaylist.getTitle().equals(“播放列表标题”);
}
公共无效测试_addtoPList(){
assertTrue(aPlaylist.isEmpty());
assertTrue(aPlaylist.addtoPlist(song1));
assertEquals(1,aPlaylist.size());
assertTrue(aPlaylist.addtoPlist(song2));
assertTrue(aPlaylist.addtoPlist(song3));
assertEquals(3,aPlaylist.size());
assertFalse(aPlaylist.addtoPlist(nullSong));
assertEquals(3,aPlaylist.size());
assertFalse(aPlaylist.addtoPlist(重复的歌曲));
assertEquals(3,aPlaylist.size());
}
公共无效测试_removeSong(){
fillPlaylist();
int size=aPlaylist.size();
assertFalse(aPlaylist.removeFromPlist(nullSong));
assertEquals(size,aPlaylist.size());
assertFalse(aPlaylist.removeFromPlist(新歌(“Artist1”,“Title1”,1.00));
assertEquals(size,aPlaylist.size());
assertTrue(aPlaylist.contains(replicate_song));
assertTrue(aPlaylist.removeFromPlist(duplicate_-song));//删除“duplicate_-song”就是删除“song1”
assertEquals(size-1,aPlaylist.size());
}
公共无效测试_getSong(){
fillPlaylist();
assertTrue(aPlaylist.getSong(0)个Song实例);
assertEquals(song1,aPlaylist.getSong(0));
assertEquals(复制_song,aPlaylist.getSong(0));
assertEquals(song2,aPlaylist.getSong(1));
assertEquals(song3,aPlaylist.getSong(2));
assertEquals(song4,aPlaylist.getSong(3));
}
公共无效性测试{
fillPlaylist();
assertTrue(aPlaylist.hasTitle(“播放列表标题”);
assertFalse(aPlaylist.hasttle(“错误标题”));
}
公共无效测试{
fillPlaylist();
资产真实(aPlaylist.hasArtist(“artist1”));
assertFalse(aPlaylist.hasArtist(“错误的艺术家”);
}
公共无效测试\u numberOfSongs(){
fillPlaylist();
assertEquals(4,aPlaylist.numberOfSongs());
}
公共无效测试{
fillPlaylist();
assertEquals(2,aPlaylist.numberOfArtists());
}
公开无效测试(编号){
fillPlaylist();
assertEquals(3,aPlaylist.numberOfTitles());
}
公共无效测试_播放时间(){
fillPlaylist();
assertTrue(aPlaylist.playTime()==19.00);
}
公共无效测试_findElement(){
fillPlaylist();
assertEquals(0,aPlaylist.findSong(song1));
资产质量(1,aPlaylist.findSong(song2));
资产质量(2,aPl)