导航:首页 > 编程语言 > javaplist

javaplist

发布时间:2022-05-09 10:48:12

java数组编程

既然向我求助了,就帮你写一下。。。。

package com.dsideal.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class JosephusPuzzle {

/**
* @param args
*/
public void puzzle(){
System.out.println("游戏开始:");
System.out.println("请输入人数:");
int playerNum=2,m=3;
Scanner scan =new Scanner(new Scanner(System.in).nextLine());
if(scan.hasNext()){
playerNum=scan.nextInt();
}
scan.close();

System.out.println("请输入m的值:");
scan =new Scanner(new Scanner(System.in).nextLine());
if(scan.hasNext()){
m=scan.nextInt();
}
scan.close();

System.out.println("游戏人数为:"+playerNum+" m值为:"+m);
System.out.println("初始化游戏者对象。。。");
System.out.println("随即获取密码,为演示简便密码不大于人数。");
List<Person> pList=new ArrayList<Person>();
Person p=null;
Random random=new Random();
for(int i=0;i<playerNum;i++){
p=new Person();
p.setId(i+1);
p.setPassword(random.nextInt(playerNum-1)+1);
p.setOut(false);
pList.add(p);
System.out.println("第"+(i+1)+"个人的密码是:"+p.getPassword());
}
List<Person> outPList=new ArrayList<Person>();
loop(m,pList,outPList);
System.out.println("出列顺序为:");
for(Person person:outPList){
System.out.print(person.getId()+"\t");
}

}
public void loop(int m,List<Person> pList,List<Person> outPList){
int k=m;
for(int i=0;i<pList.size();i++){
//System.out.println(i+" "+(k-1));
if(i==(k-1)){
Person p=pList.get(i);
outPList.add(p);
pList.remove(p);
m=p.getPassword();
break;
}
if(i+1==pList.size()&&k>pList.size()){
i=-1;k=k-pList.size();
}
}
if(pList.size()>0){
loop(m,pList,outPList);
}

}
public static void main(String[] args) {
new JosephusPuzzle().puzzle();
}

class Person{
private int id;
private int password;
private boolean isOut;
public boolean isOut() {
return isOut;
}
public void setOut(boolean isOut) {
this.isOut = isOut;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}

}
}

② java spring 获取配置文件,并放入一个list 对象中

你的思路不可实现,不过我弱弱的问一下,写个静态工具类解析配置文件不是什么难事?既然要考虑变动,我说这条思路不是更好?

③ java开发中图片文件.plist怎么解析

DOM解析比较麻烦 因为element getChildNodes 会获取到text对象。而这个对象可能是一个空白字符解析起来异常麻烦!

DOM 采用建立树形结构的方式访问 XML 文档,而 SAX 采用的事件模型。

DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变的服务中。

SAX 解析器采用了基于事件的模型,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX 对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

DOM [树型结构] SAX [事件驱动型]
于是采用SAX解析!网上有人写过,但存在些问题,于是自己做了修改测试!放出代码如下:
[java] view plain

package logame.core;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Stack;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
* .plist配置文件的解析器
*
* @author afly
*
*/
public class PlistHandler extends DefaultHandler {

private boolean isRootElement = false;

private boolean keyElementBegin = false;

private String key;

Stack<Object> stack = new Stack<Object>();

private boolean valueElementBegin = false;

private Object root;

@SuppressWarnings("unchecked")
public HashMap<String, Object> getMapResult() {
return (HashMap<String, Object>) root;
}

@SuppressWarnings("unchecked")
public List<Object> getArrayResult() {
return (List<Object>) root;
}

@Override
public void startDocument() throws SAXException {
System.out.println("开始解析");
}

@Override
public void endDocument() throws SAXException {
System.out.println("结束解析");
}

@SuppressWarnings("unchecked")
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
// System.out.println(uri+"startElement:"+qName);
if ("plist".equals(qName)) {
isRootElement = true;
}
if ("dict".equals(qName)) {
if (isRootElement) {
stack.push(new HashMap<String, Object>());// 压栈
isRootElement = !isRootElement;
} else {
Object object = stack.peek();
HashMap<String, Object> dict = new HashMap<String, Object>();
if (object instanceof ArrayList)
((ArrayList<Object>) object).add(dict);
else if (object instanceof HashMap)
((HashMap<String, Object>) object).put(key, dict);
stack.push(dict);
}
}

if ("key".equals(qName)) {
keyElementBegin = true;
}
if ("true".equals(qName)) {
HashMap<String, Object> parent = (HashMap<String, Object>) stack.peek();
parent.put(key, true);
}
if ("false".equals(qName)) {
HashMap<String, Object> parent = (HashMap<String, Object>) stack.peek();
parent.put(key, false);
}
if ("array".equals(qName)) {
if (isRootElement) {
ArrayList<Object> obj = new ArrayList<Object>();
stack.push(obj);
isRootElement = !isRootElement;
} else {
HashMap<String, Object> parent = (HashMap<String, Object>) stack.peek();
ArrayList<Object> obj = new ArrayList<Object>();
stack.push(obj);
parent.put(key, obj);
}
}
if ("string".equals(qName)) {
valueElementBegin = true;
}
}

/*
* 字符串解析(non-Javadoc)
*
* @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
*/
@SuppressWarnings("unchecked")
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
System.out.println("characters:");
if (length > 0) {
if (keyElementBegin) {
key = new String(ch, start, length);
System.out.println("key:" + key);
}
if (valueElementBegin) {
if (HashMap.class.equals(stack.peek().getClass())) {
HashMap<String, Object> parent = (HashMap<String, Object>) stack.peek();
String value = new String(ch, start, length);
parent.put(key, value);
} else if (ArrayList.class.equals(stack.peek().getClass())) {
ArrayList<Object> parent = (ArrayList<Object>) stack.peek();
String value = new String(ch, start, length);
parent.add(value);
}
System.out.println("value:" + new String(ch, start, length));
}
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if ("plist".equals(qName)) {
;
}
if ("key".equals(qName)) {
keyElementBegin = false;
}
if ("string".equals(qName)) {
valueElementBegin = false;
}
if ("array".equals(qName)) {
root = stack.pop();
}
if ("dict".equals(qName)) {
root = stack.pop();
}
}
}
调用也相对比较简单:
[java] view plain SAXParserFactory factorys = SAXParserFactory.newInstance();
SAXParser saxparser = factorys.newSAXParser();
PlistHandler plistHandler = new PlistHandler();
saxparser.parse(uri, plistHandler);
HashMap<String, Object> hash = plistHandler.getMapResult();
ArrayList<Object> array = (ArrayList<Object>)plistHandler.getArrayResult();
返回可以是一个 dict 也可以是一个array根据自己的格式获得。

④ 怎样安装Java se 6 在Mac里

下载mac版专用的jdk1.7,地址如下:http://jdk7.java.net/macportpreview/,里面有最新版的(不过还是测试版),版本更新频率每两周大概会release一个build,我安装的版本是b223(更新一下,最新版本是b227了,已经不是OpenJDK了)。
下好之后,双击dmg打开,然后简单的来一个拖拽(这个就不废话了,不会拽的面壁去)。
改变jvm首选顺序,在Spotlight里搜索[Java Preferences](中文版应该是JAVA首选项么?),应该能看到已经有的几个虚拟机,把JAVA SE 7拖拽到最上面,就可以了(比如我拖拽的是64位版本的)。
确认java使用的版本:开一个终端,输入java -version,确认jvm的版本号是jdk1.7.0。
下面的操作是如何改变eclipse默认的jre,首先打开eclipse(如果你改了jvm的顺序,让1.7在最上面,又没在eclipse的配置里写死jvm的启动位置,那么应该就已经用jdk1.7启动了)。
打开首选项->Java->Installed JREs,看到右侧的JRE列表,如果已经使用是默认的jdk1.6的话,点Add,选择MacOS X VM,在路径的地方指向到jdk7的安装位置,就可以了。
话没说完,如果你找不到这该死的jdk1.7的安装位置在哪里,可以考虑粘下这个地址(这个是我系统里的位置,我猜测大家的都应该差不多哈)。/Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home
正确的话,下面会识别出一堆jar包位置,然后给这一坨jre起个帅气的名字。
如果想启用jdk1.7的语法,必须要eclipse版本在3.8/4.2以上(目前我写这篇博客的时候,4.2已经达到了Milestone4),然后可以在workspace/project属性里把编译等级调整到1.7,就能享受jdk1.7的语言特性了(不过前提是,使用的jdk以及jre必须都是jdk1.7以上才行)。
希望这篇啰嗦的文章对大家有帮助。
更新信息
支持Java7语法的eclipse版本是从3.7开始的,具体见如下地址:http://wiki.eclipse.org/JDT/Eclipse_Java_7_Support_(BETA)
Mac下Eclipse默认还是会使用系统的jdk1.6启动,好像强制修改eclipse.ini的vm参数是无效的,必须修改Eclipse.app/Content/Info.plist,打开看里面有注释写着呢。不过我这里eclipse4.2M4修改后依然无效。
有时候会出现部分应用还使用旧的jdk1.6的情况出现,例如maven有时候就会坚持用旧版的,这时候只好找个地方导出下JAVA_HOME变量了。改到jdk1.7的Home目录即可。
jdk1.7 macport从b11开始合并了分支代码,开始已经直接使用安装程序安装了,相应安装到的路径也改变了,是这个:/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home 。update on 2012-2-12
jdk1.7u6 b09开始,bundle name变更,这样就可以在安装新版本的同时保留旧版本了。当然了,路径也会变化,变成了这个样子:/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk,其中06是update版本号。简易大家可以做一个软连接,cd /Library/Java/JavaVirtualMachines;ln -s jdk1.7.0_06.jdk 1.7.0.jdk,这样就不会受到版本升级的影响了(这样eclipse里设置的JRE路径就用软连接里的路径就好了)。

⑤ mac 如何打开plist文件怎么打开

用打开文本文件的程序如TextWrangler打开就行

TextWrangler大概是许多的Mac使用者最常用的文字编辑器之一,厂商日前放出了新版本.TextWrangler是由Bare Bones Software出品的一款免费的文本编辑器。
它的前身是BBEditor Lite,TextWrangler既是一个方便的文本编辑器,也是非常轻巧的代码开发工具,内置了包括HTML/XHTML, XML, PHP, JavaScript, Perl, Python, Ruby, Lua, Java, ANSI C, C++, Objective-C等几十种语言的语法高亮。

⑥ plist文件怎么打开

plist文件用记事本打开方法如下:
打开系统记事本程序:
输入System.Diagnostics.Process.Start("notepad.exe")
用记事本程序打开一个txt文件:
例如在D盘的【abc.txt】文件,传入文件的路径参数即可,如下:
System.Diagnostics.Process.Start("notepad.exe", "D:\\a.txt");

⑦ java怎么读取plist配置文件

大概有4种方法,这里我用了一个简单例子来说明问题。
xml文件:
Xml代码
<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<NO>A1234</NO>
<ADDR>河南省郑州市</ADDR>
</VALUE>
<VALUE>
<NO>B1234</NO>
<ADDR>河南省郑州市二七区</ADDR>
</VALUE>
第一种 DOM 实现方法:
Java代码
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class MyXMLReader2DOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

⑧ plist文件在java中应该怎么解析android开发中,应该怎么去解析plist文件

还是SAX呗,有啥可说的,DOM也行啊。

⑨ 请教关于 Mac OS X 下 Java 的路径问题

1. Mac OS自带的JDK 6:/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java。看到有朋友说OS 10.10删除了自带的JDK 6,但是我升级10.10之后还是能找到该路径,不知道是否需要重新在苹果网站下载JDK 6呢?

2. Oracle的JDK 7/8
(1)用/usr/libexec/java_home命令得到的Java Home路径是:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home,这是我之前在Oracle网站下载的jdk 8 update 20。
(2)在Java控制面板显示的路径:/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java,版本是Java 8 update 25。

阅读全文

与javaplist相关的资料

热点内容
安卓机内存删除怎么恢复 浏览:329
Qt环境的编译软件放到linux 浏览:212
联创打印系统怎么连接服务器 浏览:935
杭州行政命令 浏览:160
如何查找服务器日志 浏览:801
加密的钥匙扣怎么写 浏览:579
文件夹更新不了怎么办 浏览:475
压缩机指示灯亮是什么原因 浏览:956
什么app订酒店半价 浏览:765
中老年解压神器 浏览:243
讯飞语音ttsandroid 浏览:468
腰椎压缩性骨折术后能坐车吗 浏览:507
python类装饰器参数 浏览:348
均线pdf微盘 浏览:791
女生喜欢玩的解压游戏 浏览:442
支付宝暗号加密操作 浏览:134
柯洁在哪个app下围棋 浏览:751
平板用什么app看内在美 浏览:609
cad计算机命令 浏览:173
邮箱设置域名服务器错误什么意思 浏览:671