java线性
A. 怎么用java代码写一个线性布局;布局里面有两个按钮是水平的
android 使两个按钮水平排列的方法是使用lineLayout线性布局,如下代码:
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@color/background"
android:orientation="vertical">
<View
android:layout_width="wrap_content"
android:layout_height="1.2px"
android:layout_marginBottom="7dp"
android:background="@color/white"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="79dp"
android:layout_weight="2"
android:orientation="horizontal"
android:layout_margin="10dp">
<Button
android:id="@+id/bt1"
android:layout_width="fill_parent"
android:layout_height="26dp"
android:background="@drawable/shape"
android:layout_weight="1"
android:text="确认对冲"
android:textColor="@color/white"
android:textSize="15dp"/>
<Button
android:layout_width="fill_parent"
android:layout_height="26dp"
android:background="@drawable/shapeyuanjiao"
android:layout_weight="1"
android:text="取消"
android:textColor="@color/white"
android:textSize="15dp"/>
</LinearLayout>
</LinearLayout>
运行结果如下:
B. java程序怎么线性执行
使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。
1. exec(String command)
2. exec(String command, String envp[], File dir)
3. exec(String cmd, String envp[])
4. exec(String cmdarray[])
5. exec(String cmdarray[], String envp[])
6. exec(String cmdarray[], String envp[], File dir)
一般的应用程序可以直接使用第一版本,当有环境变量传递的时候使用后面的版本。其中2和6版本可以传递一个目录,标识当前目录,因为有些程序是使用相对目录的,所以就要使用这个版本。
实例:
Process process = Runtime.getRuntime().exec(".\\p.exe");
process.waitfor();
在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。第二条语句的目的等待子进程完成再往下执行。
C. Java中的map是线性结构吗
map不是线性结构,常用的线性结构有:线性表,栈,队列,双队列,数组,串。
数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。如(a1,a2,a3,.....,an),a1为第一个元素,an为最后一个元素,此集合即为一个线性结构的集合。
而Map 集合是用存储元素对(键值对)来存储元素,每个键映射到一个值,不存在最后一个元素的说法,也没前驱和后继元素,所以是非线性的。
D. java关于线性表的编程
packageTest;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.Reader;
importjava.io.StringBufferInputStream;
importjava.io.StringReader;
importjava.util.Scanner;
classTest{
privatestaticNodefirstList,secondList,resultList;
privatestaticvoidinput(Nodehead)throwsException{
inta;
intb;
inti;
Nodep=head;
BufferedReaderreader=newBufferedReader(newInputStreamReader(
System.in));
//读取一行信息
Stringinput=reader.readLine();
//以空格为分隔符,转换成数组
String[]numbers=input.split("");
for(i=0;i<numbers.length;){
a=Integer.parseInt(numbers[i]);
b=Integer.parseInt(numbers[i+1]);
p.next=newNode(a,b);
p=p.next;
i+=2;
}
}
publicstaticvoidmain(String[]args)throwsException{
firstList=newNode();
secondList=newNode();
resultList=newNode();
Nodep=resultList;
System.out.println("输入第一个多项式");
input(firstList);
System.out.println("输入第二个不等式");
input(secondList);
while(firstList.next!=null&&secondList.next!=null){
if(firstList.next.zs>secondList.next.zs){
p.next=newNode(firstList.next.xs,firstList.next.zs);
p=p.next;
firstList=firstList.next;
}elseif(firstList.next.zs<secondList.next.zs){
p.next=newNode(secondList.next.xs,secondList.next.zs);
p=p.next;
secondList=secondList.next;
}else{
p.next=newNode(firstList.next.xs+secondList.next.xs,firstList.next.zs);
p=p.next;
firstList=firstList.next;
secondList=secondList.next;
}
}
if(firstList!=null){
p.next=firstList.next;
}
if(secondList!=null){
p.next=secondList.next;
}
p=resultList;
while(p.next!=null){
System.out.print(p.next.xs+"x^"+p.next.zs+"+");
p=p.next;
}
System.out.println();
}
}
publicclassNode{
publicintxs;//系数
publicintzs;//指数
publicNodenext=null;//指向下一个
publicNode(inta,intb){
xs=a;
zs=b;
}
publicNode(){
}
}
答案
输入第一个多项式
5 4 3 2 1 1
输入第二个不等式
4 4 3 2 1 1
9x^4+6x^2+2x^1
E. java 线性表
import java.util.*;
public class MainList{
public static void main(String[] args) throws Exception {
int len,inpos,delpos;
Object yinsert;
List li=new List(20);
Scanner reader=new Scanner(System.in);
System.out.print("请输入顺序表的长度:");
len=reader.nextInt();
System.out.println("请输入顺序表的元素:");
for(int i=0;i<len;i++)
{
yinsert=reader.nextInt();
li.in(yinsert);
}
li.outprint();
System.out.print("请输入插入的元素位置:");
inpos=reader.nextInt();
System.out.println();
System.out.print("请输入需要插入的元素:");
yinsert=reader.nextInt();
System.out.println();
li.insert(inpos,yinsert);
li.outprint();
}
}
class List {
private Object[] listelem;
private int curlen;
List(int maxlen) {
curlen=0;
listelem=new Object[maxlen];
}
public int length(){
return curlen;
}
public void in(Object x) {
listelem[curlen]=x;
curlen++;
}
public void insert(int a,Object x)throws Exception{
if(a<0||a>listelem.length)
{throw new Exception("插入的位置不正确"); }
for(int i=curlen;i>a;i--)
{
listelem[i]=listelem[i-1];
}
listelem[a]=x;
curlen++;
}
public void outprint() {
System.out.print("当前顺序表中的元素为:");
for(int z=0;z<curlen;z++) {
System.out.print(listelem[z]+" ");
}
System.out.println("当前顺序表的长度为:"+length());
}
}
我做了一点点修改,在输入元素时,用空格将每个元素隔开即可!
回答你的问题:
你在用reader.nextInt()进行键盘读入时,实际是返回的字符串类型的,因此你输入长度为5,但只能输入4个元素。实际上有五个元素,只不过第一个元素是空格而已!第二个问题也是出在reader.nextInt()上,道理一样!
F. Java设计线性表排序算法
import java.util.Scanner;
import java.util.Arrays;
public class P
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
float[] A=new float[1],B=new float[1];
int alen=0,blen=0,i,j,k;
String line;
System.out.println("请输入线性表A的各元素,每行一个(输入#结束):");
while(true)
{
line=sc.nextLine();
if(line.equals("#"))
break;
A=Arrays.Of(A,++alen);
A[alen-1]=Float.parseFloat(line);
}
System.out.println("请输入线性表B的各元素,每行一个(输入#结束):");
while(true)
{
line=sc.nextLine();
if(line.equals("#"))
break;
B=Arrays.Of(B,++blen);
B[blen-1]=Float.parseFloat(line);
}
Arrays.sort(A);
Arrays.sort(B);
System.out.println("升序排序后,线性表A的各元素是:");
for(i=0;i<alen;i++)
{
System.out.print(A[i]+" ");
}
System.out.println();
System.out.println();
System.out.println("升序排序后,线性表B的各元素是:");
for(i=0;i<blen;i++)
{
System.out.print(B[i]+" ");
}
System.out.println();
System.out.println();
A=Arrays.Of(A,alen+blen);
for(i=0;i<blen;i++)
{
if(B[i]>=A[alen-1])
A[alen++]=B[i];
else
{
for(j=0;j<alen-1;j++)
{
if(B[i]<=A[j])
break;
}
for(k=alen-1;k>=j;k--)
{
A[k+1]=A[k];
}
A[j]=B[i];
alen++;
}
}
System.out.println("线性表B按顺序插入线性表A中后,线性表A的各元素是:");
for(i=0;i<alen;i++)
{
System.out.print(A[i]+" ");
}
sc.close();
}
}
G. java线性表编程(一定要用java语言)
借用楼上的代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> l1 = new ArrayList<Integer>(Arrays.asList(3,5,8,11));
List<Integer> l2 = new ArrayList<Integer>(Arrays.asList(2,6,8,9,11,15,20));
List<Integer> tmp = new ArrayList<Integer>(l2);
tmp.removeAll(l1);
List<Integer> result = new ArrayList<Integer>(l1);
result.addAll(tmp);
System.out.println(result);
l1.addAll(l2);
Collections.sort(l1);
System.out.println(l1);
}
}
H. java 线性查找和二分查找的区别
一 线性查找
定义:在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程。
线性查找又称为顺序查找。如果查找池是某种类型的一个表,比如一个数组,简单的查找方法是从表头开始,一次将每一个值与目标元素进行比较。最后,或者查找到目标,或者达到表尾,而目标不存在于组中,这个方法称为线性查找。
二 折半查找
定义:二分查找又称折半查找,它是一种效率较高的查找方法。
【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。
【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
【算法思想】首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。
重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
【算法复杂度】假设其数组长度为n,其算法复杂度为o(log(n))
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如 果x<a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。
I. java建立一个线性表
import java.util.ArrayList;
import java.util.List;
public class ListDemo {
public static void main(String[] args) {
int numLength = 10;
int deleteNum = 5;
List<Integer> list = new ArrayList<Integer>();
init(numLength,list);
delete(deleteNum,list);
print(list);
}
private static void print(List<Integer> list) {
for(int i=0;i<list.size();i++){
System.out.print(list.get(i) +"\t");
}
}
private static void delete(int deleteNum,List<Integer> list) {
for (int i=0;i<list.size();i++){
if((int)list.get(i)==deleteNum){
list.remove(i);
}
}
}
private static void init(int numLength,List<Integer> list) {
for(int i=1;i<=numLength;i++){
list.add(i);
}
}
}
//当然你要是把你的代码贴上来就更好了,可以帮忙找出问题,另外也可以知道你对java了解到哪个程度了呵,给出的帮助可能更实际一些