如何将Java ArrayList值显示为逗号分隔的值
我有一个场景,我需要从web服务api获取500,并将最终输出值显示为逗号分隔的值,如id、名称、所有者、帐户、路径和值。为了实现这一点,我正在编写一个方法,在这个方法中,我获取所有这些信息并设置为一个java对象。字段如下。最后,我创建了一个列表来保存这些视频对象。视频。添加(视频)如何将Java ArrayList值显示为逗号分隔的值,java,arraylist,output,Java,Arraylist,Output,我有一个场景,我需要从web服务api获取500,并将最终输出值显示为逗号分隔的值,如id、名称、所有者、帐户、路径和值。为了实现这一点,我正在编写一个方法,在这个方法中,我获取所有这些信息并设置为一个java对象。字段如下。最后,我创建了一个列表来保存这些视频对象。视频。添加(视频) 字符串标识符; 字符串名; 字符串所有者名称; 字符串accountName; 字符串中介路径; 名单; 现在,如何显示视频列表对象的输出。请帮我解决这个问题 代码是: for (String mediaId
字符串标识符;
字符串名;
字符串所有者名称;
字符串accountName;
字符串中介路径;
名单;
现在,如何显示视频列表对象的输出。请帮我解决这个问题
代码是:
for (String mediaId : mediaList) {
if (mediaId != null) {
String mediaFullPath = getMediaPath(mediaId);
entryInfo = getMedia(mediaId);
metadataList = getMetadata(mediaId);
ccs = getClosedCaptions(mediaId);
if (entryInfo != null) {
video = new Video();
System.out.println("entryInfo.id"
+ entryInfo.id);
System.out.println("entryInfo.name"
+ entryInfo.name);
System.out.println("mediaFullPath"
+ mediaFullPath);
video.setIdentifier(entryInfo.id);
video.setName(entryInfo.name);
video.setMediaPath(mediaFullPath);
}
if (metadataList != null
&& metadataList.totalCount != 0) {
List<KalturaMetadata> metadataObjs = metadataList.objects;
if (metadataObjs != null
&& metadataObjs.size() > 0) {
for (int i = 0; i < metadataObjs.size(); i++) {
KalturaMetadata metadata = metadataObjs
.get(i);
if (metadata != null) {
if (metadata.xml != null) {
metadataValues = parseXml(metadata.xml);
if (metadataValues.size() != 0) {
ibmAccountList = metadataValues
.get(0);
for (String account : ibmAccountList) {
System.out
.println("IBM Account Name ------->"
+ account);
video.setAccountName(account);
}
ownerList = metadataValues
.get(1);
for (String owner : ownerList) {
System.out
.println("Account Owner Name ------->"
+ owner);
video.setOwnerName(owner);
}
}
}
}
}
}
}
}
if (ccs.size() != 0) {
for (Map.Entry<String, List<KalturaCaptionAsset>> entry : ccs
.entrySet()) {
String key = entry.getKey();
List<KalturaCaptionAsset> values = entry
.getValue();
// System.out.println("Key = " + key);
for (KalturaCaptionAsset asset : values) {
System.out.println(" CC value : "
+ asset.language);
ccList.add(asset.language);
video.setCcList(ccList);
videos.add(video);
}
}
}
}
for(字符串mediaId:mediaList){
if(mediaId!=null){
字符串mediaFullPath=getMediaPath(mediaId);
entryInfo=getMedia(mediaId);
metadataList=getMetadata(mediaId);
ccs=getClosedCaptions(mediaId);
if(entryInfo!=null){
视频=新视频();
System.out.println(“entryInfo.id”
+entryInfo.id);
System.out.println(“entryInfo.name”
+entryInfo.name);
System.out.println(“mediaFullPath”
+mediaFullPath);
设置标识符(entryInfo.id);
video.setName(entryInfo.name);
video.setMediaPath(mediaFullPath);
}
if(metadataList!=null
&&metadataList.totalCount!=0){
List metadataObjs=metadataList.objects;
如果(metadataObjs!=null
&&metadataObjs.size()>0){
对于(int i=0;i”
+账户);
video.setAccountName(帐户);
}
ownerList=元数据值
.get(1);
for(字符串所有者:所有者列表){
系统输出
.println(“帐户所有者名称------->”
+业主);
video.setOwnerName(所有者);
}
}
}
}
}
}
}
}
如果(ccs.size()!=0){
对于(地图条目:ccs
.entrySet()){
String key=entry.getKey();
列表值=条目
.getValue();
//System.out.println(“Key=“+Key”);
对于(资产:价值){
System.out.println(“CC值:”
+资产负债表(语文);
ccList.add(asset.language);
视频设置列表(ccList);
视频。添加(视频);
}
}
}
}
您走错了方向。只需在Video
类中实现您的toString
方法
当您迭代列表并打印视频对象时,它会在视频类中调用toString
方法
在视频类中提供实现时,生成所需格式的字符串。需要获取500个什么?您是否希望按特定顺序打印列表中的所有视频pojo对象,请详细说明您的问题。我实际上认为这不是一个好主意
toString
用于简短的人类可读表单(例如用于日志记录和调试),而不是作为数据传输和转换的基础。我将为此创建一个单独的方法(getAsCsv()
或类似的方法)。谢谢。重写toString方法时,如何显示列表字段的所有列表值。公共字符串toString(){return identifier+”,“+name+”,“+ownerName+”,“+mediaPath+”,“+accountName;}@realponsibilist抱歉,我强烈反对。使用有价值的信息实现适当的toString不是一个坏主意:)这不是一个坏主意。你应该一直这样做。但您不应该将其用作任何类似序列化/反序列化的基础。分离使用可以使
for (String mediaId : mediaList) {
if (mediaId != null) {
String mediaFullPath = getMediaPath(mediaId);
entryInfo = getMedia(mediaId);
metadataList = getMetadata(mediaId);
ccs = getClosedCaptions(mediaId);
if (entryInfo != null) {
video = new Video();
System.out.println("entryInfo.id"
+ entryInfo.id);
System.out.println("entryInfo.name"
+ entryInfo.name);
System.out.println("mediaFullPath"
+ mediaFullPath);
video.setIdentifier(entryInfo.id);
video.setName(entryInfo.name);
video.setMediaPath(mediaFullPath);
}
if (metadataList != null
&& metadataList.totalCount != 0) {
List<KalturaMetadata> metadataObjs = metadataList.objects;
if (metadataObjs != null
&& metadataObjs.size() > 0) {
for (int i = 0; i < metadataObjs.size(); i++) {
KalturaMetadata metadata = metadataObjs
.get(i);
if (metadata != null) {
if (metadata.xml != null) {
metadataValues = parseXml(metadata.xml);
if (metadataValues.size() != 0) {
ibmAccountList = metadataValues
.get(0);
for (String account : ibmAccountList) {
System.out
.println("IBM Account Name ------->"
+ account);
video.setAccountName(account);
}
ownerList = metadataValues
.get(1);
for (String owner : ownerList) {
System.out
.println("Account Owner Name ------->"
+ owner);
video.setOwnerName(owner);
}
}
}
}
}
}
}
}
if (ccs.size() != 0) {
for (Map.Entry<String, List<KalturaCaptionAsset>> entry : ccs
.entrySet()) {
String key = entry.getKey();
List<KalturaCaptionAsset> values = entry
.getValue();
// System.out.println("Key = " + key);
for (KalturaCaptionAsset asset : values) {
System.out.println(" CC value : "
+ asset.language);
ccList.add(asset.language);
video.setCcList(ccList);
videos.add(video);
}
}
}
}