62,567
社区成员




private static int arrlength = 0;
public void addStrToArr( String str){
if(arrlength % 2 == 0){ // 如果是偶数
rearStrs.push(str);
}else{
frontStrs.add(str);
}
}
private void initStrs(String[] arr){ //保证arr至少有两个
arrlength = arr.length;
……
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(addNewElement(new Integer[]{1,2,5,8},3));
System.out.println(addNewElement(new Integer[]{1,3,4},5));
}
/**
*
* @param source
* @param element
* @return
*/
private static List<?> addNewElement(Integer[] source, Integer element) {
List<Integer> l = new ArrayList<Integer>(Arrays.asList(source));
int index = 0;
if (l.size() % 2 == 0) {
index = l.size() / 2;
} else {
index = (l.size() +1 ) / 2;
}
l.add(index, element);
return l;
}
}
//数组的前一半
private static List<String> frontStrs = new ArrayList<String>();
//数组的后一半
private static Stack<String> rearStrs = new Stack<String>();
//要返回的数组,也就是 frontStrs + rearStrs
private static String[] resStrs = null;
//不过问题是 frontStrs + rearStrs 不知道怎么实现
/**
* 用来初始化前一半和后一半
*/
private void initStrs(String[] arr){ //保证arr至少有两个
if(arr.length == 1){
//???
}else
if(arr.length % 2 == 0){
for(int i = 0 ; i < arr.length/2 ; i ++ ){
frontStrs.add(arr[i]);
// rearStrs.add(arr[i + arr.length/2]);
rearStrs.push(arr[i + arr.length/2]);
}
}else{
for(int i = 0 ; i < arr.length/2 ; i ++ ){
frontStrs.add(arr[i]);
rearStrs.push(arr[i + arr.length/2]);
}
frontStrs.add( arr[arr.length/2]);
}
}
/**
* 插入字符串
*/
public void addStrToArr(String[] arr , String str){
if(arr != null && arr.length != 0){
if(){
}
}else{
//
}
}
public void addStrToArr(String[] arr , String str){
if(arr != null && arr.length != 0){
int length = arr.length ;
if(length % 2 == 0){ // 如果是偶数
rearStrs.push(str);
}else{
frontStrs.add(str);
}
}else{
//
}
}
public static int[] insertOne(int[] oldarray,int theone){
int[] newarray = new int[oldarray.length+1];
for(int i = 0;i<=oldarray.length;i++){
if(i<(oldarray.length+1)/2){
newarray[i]=oldarray[i];
}else if(i==(oldarray.length+1)/2){
newarray[i]=theone;
}else{
newarray[i]=oldarray[i-1];
}
}
return newarray;
}
public class A {
private final int maxLen = 100;
private int[] a = new int[maxLen];
private int size = 0;
void print() {
for(int i=0; i<size; i++)
System.out.print(a[i]+" ");
System.out.println();
}
void add(int x) { a[size++] = x; }
int size() { return size; }
void insert(int x, int i) {
System.arraycopy(a, i, a, i+1, size-i);
a[i] = x;
size++;
}
void insertMiddle(int x) {
insert(x, (size+1)/2);
}
public static void main(String[] args) {
A a = new A();
for(int x : new int[]{1,2,5,8}) a.add(x);
a.print(); //1 2 5 8
a.insertMiddle(3);
a.print(); //1 2 3 5 8
a = new A();
for(int x : new int[]{1,3,4}) a.add(x);
a.print(); //1 3 4
a.insertMiddle(5);
a.print(); //1 3 5 4
}
}