您的位置:首页 > 编程语言 > Java开发

JavaShowAlgorithm-找出数组中相同的元素

2017-10-27 18:59 344 查看
import java.util.ArrayList;

public class Test {

private String[] data = { "A", "A", "B", "C", "C", "D", "D", "D" };

// 存储分类好的数据元素。
private ArrayList<Group> groups = new ArrayList<Group>();

// 核心的算法实现。
public void find() {

// 游标index
int index = 0, j = 0;

while (index < data.length) {
Group group = new Group();
group.title = data[index];

String t = group.title;

ArrayList<String> children = new ArrayList<String>();

for (j = index; j < data.length; j++) {

String child = data[j];
if (t.equals(child)) {
// 同时记录该重复出现的元素在原数组中的下标j,便于查验、评估结果。
children.add(child + "@" + j);
} else {
break;
}
}

// 往后推进游标index
index = j;

group.children = children;
groups.add(group);
}
}

// 输出结果。
private void print() {
for (int i = 0; i < groups.size(); i++) {
Group g = groups.get(i);
System.out.println(g);
}
}

private class Group {
public String title;
public ArrayList<String> children;

// 结果。
@Override
public String toString() {
String str = "组" + title + ": ";
for (int i = 0; i < children.size(); i++) {
str += children.get(i) + " ";
}

return str;
}
}

public static void main(String args[]) {
Test t = new Test();
t.find();
t.print();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: